I’m trying to build a seated space dogfighter game in Unity 2019.3 with the SteamVR Unity plugin where the ship is controlled by physically grabbing and touching controls in the cockpit.
I am using the SteamVR Player prefab from the Interaction System, but the trouble I’m running into is that when the Player GameObject is moving forward rapidly, the SteamVR HandColliderLeft and HandColliderRight GameObjects (instantiated by the HandPhysics.cs component on each hand) that are responsible for collision end up lagging behind the controller and render model positions, so although it looks like I’m touching the controls of the ship, the hand colliders are many meters back and nothing can accurately be grabbed.
To replicate, simply add the Player prefab to a new scene, enter play mode, and select the Player->HandColliderLeft/Right(Clone) GameObjects so their colliders show up in the scene view, then watch the colliders lag behind the hand model when the hand is moving. This is easiest to see when the Player prefab is moving at least around 20 meters per second, but you can also just shake your hand fast and the colliders won’t always line up.
Does anyone know how to get around this issue? I simply can’t find anything about HandPhysics.cs or HandCollider.cs online, and this issue is pretty critical to the game I’m building which makes development a bit frustrating. Could this issue be solved by editing some SteamVR code (maybe in Hand.cs, HandPhysics.cs, or HandCollider.cs) so that the HandColliderLeft/Right objects snap to the actual hand position?
If you’re able to give any help, it would be much appreciated!