Search code examples
c#user-interfaceunity-game-enginegoogle-vrdaydream

Interacting with Unity UI using daydream controller as a pointer


I am aware of GazeInputModule, which allows users to interact with Unity's UI system using head movement. I was wondering if there is a possibility to use Daydream's controller as a pointer to interact with user interface instead. Any tips or advices are much appreciated.


Solution

  • In latest GVR Unity SDK, there are sample scenes for daydream. Check them out as they are using GVRController for interaction. I assume that you are using latest Unity Daydream Preview which has built-in support for GVR. So here are the steps to follow:

    1. Add GVRPointerInputModule to EventSystem :

    2. Add following Prefabs in your scene:

    3. Attach GVRPointerGraphicRaycaster to world space canvas and set MainCamera as event camera in canvas component:

    4. And finally make sure to add enable virtual reality support from player settings and add Daydream SDK:

    Note: Remove old components like GazeInputModule, GraphicRaycaster etc.

    Additional:

    You can change Controller's Arm model as preferred(Currently it has options of Pointer, Wrist, Elbow and Shoulder)

    I hope this helps.