Home Forums Software Development Unity errors: Assembly-CSharp.dll & EyeXGameObjectInteractorBase Reply To: Unity errors: Assembly-CSharp.dll & EyeXGameObjectInteractorBase

Jenny [Tobii]

Hi Carlos,

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.