Skip to main content
December 17, 2014

OVR Main Menu not coming up after Application.LoadLevel

I have a fairly simple project I'm testing which only has 3 scenes right now. The main scene is a level select using the look-based input (thanks, ccs) and when you select 1 of 2 buttons it loads a scene called Level1 or Level2. The scenes themselves load fine from there, and I've made it to where I can go back to LevelSelect by hitting Esc.

I am trying to troubleshoot FPS issues, so I've attached the OVR Main Menu script to my camera (OVRCameraRig in all 3 scenes). The OVR Main Menu works on the initial LoadLevel scene, but if I load a different scene from there, the OVR Main Menu won't trigger by pressing Space. If I build Level1 or Level2 by themselves, the OVR Main Menu works in both. Anyone have an idea of why it wouldn't work trigger after loading from another scene?

With regards to my FPS issues, what's happening is that on my LoadLevel scene, I have a canvas with 4 buttons floating in the sky. No skybox or anything else. When I first start the scene it's showing around 110fps, which is then capped after a few seconds at 75fps, and if I don't move my head it stays there. If I look around, it drops to 37.5fps and then never makes it back to 75fps even if I'm staring off into empty space. Is this by design? I would think once it can get back over 75fps it should re-adjust. I understand the concept that if it can't reach 75fps it will half it and lock the vsync there. The problem is that 37.5fps doesn't feel very good.
    This topic has been closed for replies.

    2 replies

    December 17, 2014
    On a semi-related note, I did just find out how the scene selection options attached to OVR Main Menu work. Pretty interesting. Loading scenes this built-in way also seems to disable any of the OVR Main Menu functions after loading a new scene.
    Inspiring
    December 17, 2014
    See https://forums.oculus.com/viewtopic.php?f=37&t=18124. You might be able to work around it by making OVRUGUI.isInited "internal" instead of private and adding the following to OVRMainMenu.cs:
    void OnDestroy()
    {
    OVRUGUI.isInited = false;
    }