Home › Forums › Software Development › Unity errors: Assembly-CSharp.dll & EyeXGameObjectInteractorBase
Tagged: GazeAware, GUITexture, PlayMaker, Unity
- This topic has 5 replies, 3 voices, and was last updated 8 years, 5 months ago by Robert [Tobii].
- 27/11/2014 at 02:03 #2116
I found a compiler error just creating a new proyect and importing the frame work:
Internal compiler error. See the console log for more information. output was:
Unhandled Exception: System.UnauthorizedAccessException: Access to the path “C:\Users\Carlos\Documents\New Unity Project kk\Temp\Assembly-CSharp-firstpass.dll.mdb” is denied.
Deleting several times the dll from the temp folder and also restarting unity several time I could make run the examples escenes.
Also I want to add a ActivatableComponent to a GuiTexture but get this message:
InvalidOperationException: Could not resolve renderer for game object.
EyeXGameObjectInteractorBase.GetRenderer () (at Assets/Standard Assets/EyeXFramework/EyeXGameObjectInteractorBase.cs:165)
I would like to do the same as GazeAwareComponent on a 3d object but for a GuiTexture.
How can I make it work?
Thanks in advance.27/11/2014 at 11:00 #2117Jenny [Tobii]Participant
The compile error might be due to your antivirus program trying to access files at the same time as Unity. Try whitelisting the Unity project folder. Check out this Unity forum thread: http://forum.unity3d.com/threads/temp-assembly-csharp-editor-firstpass-dll-mdb-is-denied.222997/
For your second question, the GazeAwareComponent only works on game objects with a renderer. Since your GUI Texture object does not have a renderer you would have to do a little more work programmatically to make it work. Let me explain a little what the EyeX components do behind the scenes, so you get an idea what it is you have to do, then I will point you to a working code sample doing exactly this.
The game object’s renderer is used by the GazeAwareComponent to project the bounding box of the 3D object to the screen – like if you were to look at your 3D scene and take a pencil and draw a rectangle on your screen so that all parts of the 3D object fitted within the rectangle. This rectangle is then sent to the EyeX Engine in the form of what we call an interactor, specified with the desired Gaze Aware behavior. Now, when the user looks at the part of the screen where the interactor rectangle is, the EyeX Engine sends events whenever the user’s eye-gaze changes from being within the rectangle or outside the rectangle. The information from the latest event is saved and can be read in the Update() method. The position and size of the interactor rectangle has to change whenever the position and size of the game object changes as seen on the computer screen.
In the case of a GUI Texture, you would have to create an EyeXInteractor programmatically, give it the Activatable Behavior and specify the interactor rectangle on the screen in Window’s Virtual Screen coordinates. In every update loop you would have to make sure the interactor rectangle’s position and size is up to date with the GUI Texture’s position and size on the computer screen. Remember that even though the GUI Texture is not moving in the game window, the game window itself may be moved or resized by the player at any time.
There is an example how to use the Activatable Behavior with GUI Texture’s included in the EyeX SDK for Unity: Check out EyeXDemos/ActivatableGUI/ActivatableMenuItems.cs. If you run the demo scenes, it is the scene with the GUI buttons and a cube. Press space bar to open the GUI Texture game menu with “Resume” and “Quit” buttons that are EyeXInteractors.
In anticipation of the new GUI system in Unity 4.6, we have not put much effort in the pre-4.6 GUI and GUI Texture system. Now, that Unity 4.6 is released, we have the opportunity to make something for 2D buttons and textures that is as easy to work with as the EyeX components for game objects.02/12/2014 at 00:11 #2136
thx for answer.
Will be done for the next release of Tobii.SDK I have read it´s gonna be for about 2 weeks?
Too soon, isn´t it?03/12/2014 at 14:55 #2140Jenny [Tobii]Participant
I’m not sure I understand the question. Are you wondering when the new Unity 4.6 GUI system might be supported in the EyeX SDK for Unity? It is on our todo-list, but there are quite a lot of other stuff that has higher priority on the todo-list right now, so I don’t know when we will be able to implement it.28/12/2014 at 19:03 #2279
Sorry Jenny, It´s has been impossible to me to write before.
Yes, that was my question. I understand that there is a lot of work.
Im a Playmaker user for Unity, cause my low programmer skill. I understand the way Tobii SDK works, and can do little things,
modify done things. Or get properties of the scripts trhough playmaker.
Im sure the example is very simple, but can you help me to get an empty scene, just a texture and when the gaze is on it, sends a boolean operation to the inspector. On (True) Out (False). In playmaker with “get property” Action, I will be capable to read the Bool value.
I think is not too much but ….maybe it is :S
Late for Merry christmas but not for Happy new year!!!!!29/12/2014 at 10:40 #2281Robert [Tobii]Participant
Jenny is on holiday today, so I’ll answer for her.
As she said, we will add code examples demonstrating how to use the EyeX SDK for Unity with the new GUI system. We just cannot do it right now. Meanwhile, maybe you can get help from someone else on this forum or within the Unity community.
Regarding PlayMaker support for the Tobii EyeX SDK, it has been discussed in the PlayMaker forum. Please vote for it!
Happy New Year! See you in 2015
- You must be logged in to reply to this topic.