Showing GUI with OVRPlayerController

Hi all,

I’ve created a small environment in which a screen with text is displayed in the middle of the screen. Both screen and text are children of a Canvas GameObject, and the text is a child of the screen. Now, when I run this with my regular Controller (the FPSController provided by Unity), all’s good. However, I want to view this environment with the Oculus Rift. But when I view it with the OVRPlayerController, no GUI is shown.

What I’ve found up till now is that this prefab has no GUILayer, so I’ve tried adding the GUILayer component to different parts of the Camera GameObject. First I tried the OVRCameraRig, then TrackingSpace, then all Anchors. However, none of these resulted in being able to view the GUI. When adding the component, there was nothing in its drop-down menu. I’ve also tried setting the GUI objects to (0.5, 0.5, 0) as a possible solution, but this didn’t work either.

For clarity, the OVRCameraRig has the following architecture:

OVRCameraRig
  TrackingSpace
    LeftEyeAnchor
    CenterEyeAnchor
    RightEyeAnchor
    TrackerAnchor

Has anyone encountered this problem and knows how to solve it?

Assuming you are using the new GUI system (introduced in Unity 4.6):

Make your canvas a child of CenterEyeAnchor and set the render mode to ‘World Space’. You will likely have to re-scale your Canvas and its children so that they can be comfortably viewed on the rift.

you can’t really use GUI layers with the Camera GameObjects in OVRCameraRig because those cameras are using RenderTextures. I don’t quite understand the nitty-gritty, but I think the RenderTextures can’t render GUILayer stuff.