I have an OVRPlayerController set up in the Unity Survival Shooter example. I can grab the gun with either hand and shoot. I even have a script that references the Grabbable Object and adjusts it position when held. ( since the object offset on the OVRGrabbable doesn't actually work). It all works perfectly until the game end. Once it end the game reloads the same scene to play again. On the second time you play, the grabbing of objects becomes erratic and sometimes doesn't work at all. There is some Serialized data or a Coroutine being kept in the reloaded scene. It's not any of my code so I was wonder what it is in the Grabbing scripts. The game works perfectly until I reload the scene.
As this involves the coding of your project itself, I can only give general guidance here. Have you tried a DontDestroyOnLoad function?
No that is my next check to solve the issue. But I kind of want to know how to cleanly shut down The grabbing scripts as well. If it is because of Serialized data or some coroutine, It would be good to know. Also since the game reloads the same scene. I would have to make sure a second copy doesn't appear.
So part of the issue is the LocalAvatar. It has major issues even with using Don't Destroy on Load. It freaks out. Guys, ALL of these tools need to be Thread/Memory safe. Especially if the player reloads the same scene...
Perhaps you guys should look at NewtonVR. You can take their Oculus Player prefab and parent it to an Empty Game Object with a Character Controller and motor code. Once you have that you can interact with objects and move about and it works properly if the player reloads the scene. Sadly it is missing the LocalAvatar for the hands. But at least it works Properly if the player reloads the scene. http://www.newtonvr.com/