cancel
Showing results for 
Search instead for 
Did you mean: 

Integration 1.38 OVRPlayerController seems to be buggy. I am getting pushed around!

plyrek
Protege
There may be bugs in the OVRPlayerController script in the 1.38 Integration or possibly in how it integrates with the required Unity CharacterController component. There were lots of problems with getting pushed around and off the map. Both in the locomotion and grab examples from the package as well as when i used the scripts in my own scene. Even when I programmed my own locomotion script if I added the OVRPlayerController to my character I would fall through the environment once I moved. If I removed the OVRPlayerController and just kept the CharacterController as a collider all was well with the world. Unfortunately, OVRPlayerController does a lot of other things too like keeping your Character and HMD in sync. So I am afraid I am going to have to go in there and pull out the code I need. I am hoping I won't pull the buggy code too.

Just wanted to report what I found. I have seen others mention being pushed off the map and stuff with no solutions given from the community or Oculus but I have not seen anyone equate it to the OVRPlayerController.
Thanks.

P.S. Have I typed OVRPlayerController enough yet?
6 REPLIES 6

Geist2501
Explorer
I remember a past client of mine having similar problems. Not related to OVR, but he had his FP-Controller "drifting" and "being pushed around" when picking up stuff.

It turned out, after i examined his setup, that he had tons of colliders that had various rigidbodies and physics related components attached. (His player model had colliders for hit detection and stuff, these where clipping in and out of the capsule collider...) His controller script was also moving things to layermasks without him being aware of that. (i assume he built his controller off of some template)
Maybe the OVR stuff affects physics layers or something ¯\_(ツ)_/¯

SO, his player was being pushed around by interfering colliders that where set up weirdly.

Until you find and answer or an official Fix is announced i guess it would not hurt if you check your physics setup and whether there are any colliders that could affect your character controller.

Also, have you tried putting additional planes below the floor and see if you fall thorough all of them or just the first one?

Hope that doesn't just waste your time





mouse_bear
Retired Support
You may want to increase the "Fixed Timestep" value (within the Unity editor, under the Edit -> Project Settings -> Time menu) to match the max framerate of your device. This value determines the rate at which your physics objects update; this is set to 0.2 as default within Unity (50Hz). You can refer to the following chart to determine which values to enter based on device:

50Hz (Default) = 0.2
60Hz (Gear VR) = 0.0167
72Hz (Quest/Oculus Go) = 0.0138
80Hz (Rift S) = 0.125
90Hz (Rift) = 0.0111

This not only makes the physics within your experience smoother, but it also solves the issues around teleporting.

plyrek
Protege
Thank you both for your replies. I did try the two plane thing and fell through both. I only have the plane collider and the character controller collider in the scene and they work fine if there is no OVRPlayerController component so I don't think it is that. I will up my Fixed TimeStep and will be coping your numbers to my permanent notes!
 

vr_voxel
Explorer
Timestep value didn't change anything for me, but thanks for that knowledge which I shall apply going forward anyway. For me disabling the CharacterController script fixed the glitches and flying off into the abyss that I was experiencing when testing the Locomotion scene in the Oculus Integration stuff.

plyrek
Protege

vr_voxel said:

Timestep value didn't change anything for me, but thanks for that knowledge which I shall apply going forward anyway. For me disabling the CharacterController script fixed the glitches and flying off into the abyss that I was experiencing when testing the Locomotion scene in the Oculus Integration stuff.


vr_voxel,
Timestep didn't work for me either. It is definitely the interplay between the CharacterController and OVRPlayerController that is causing the problems. Not only in the locomotion script but in the DistanceGrab scene as well.  😞

Geist2501
Explorer
I suggested the multiple ground thing to test for Timestep errors - 'cause it's unlikely to clip through multiple colliders due to physics update rates.
You can easily calculate the fit of Timesteps for each frame rate or refresh rate by: "1/refresh rate"
Just so you know, no need to note them down. Note the formula if needed 😉

Are you by any chance on a newer non final (alpha/beta) build of Unity?
I had trouble with Unity2019 and went down some version while still using Integration 1.38 without being pushed around.
Unless i stand on top of what i pick up but that's more of a logic thing than a bug 😄

Tired going down one final release?