Hello everyone. I’m acutally working on a game. In this game it is very important to not be position tracked. I would like to use my headet like a cardboard, only rotation. I’ve juste spend like 5 hours trying to figure how it is possible to overwrite transform.position values of the headset but nothing seems to work.
Is there a solution? In fact I am creating a prototype of a machine that user can control and it is very important to keep the headset centered in the game.
Sorry for my bad english…
Thanks a lot 
Currently this isn’t supported, though we’re looking into a number of ways to improve the VR module.
One workaround you could try would be to parent the camera under another object, and set that object’s position to the negative of the VR head position. You can use VR.InputTracking.GetLocalPosition to query for the position of the head node, then set this parent node to have the negative of that value. I don’t have an HMD on hand right now to test with, but I believe that should work to counteract the automatic positioning of the camera, allowing it to stay at the origin.
Thank you very much !
I just tried this solution. But I have to put the parent of my VR camera inside another parent (My vehicle). This vehicle will rotate, it’s a plane. When my plane rotate, the VR camera’s parent rotate with it and a discard occurs…
I have a similar need. We are building a VR “cockpit” that rotates to allow gravity to simulate translational acceleration for the player.
Simple enough in theory, but the catch is that we need to leave the headset synchronized to its physical position, as in room-scale VR, but we need to remove any rotation and translation added by the cockpit to simulate acceleration.
Can we apply additional translation and rotation to the camera rig, or head object, in a LateUpdate function call?
EDIT:
The simple answer is “no,” The VR camera (eye) position is set in a OnPreCull function call in the SteamVR_UpdatePoses object. In OnPreCull(), the latest tracked states are acquired from the compositor, and then “new_poses” and “new_poses_applied” events are sent via the SteamVR_Utils class.
So, if you manually change the camera position in LateUpdate(), it will be overwritten during OnPreCull().
As has been pointed out, you *can change the parent position and rotation as needed. You could write a script for that parent that changes its position and rotation in LateUpdate()