If you're building a seated or standing experience, you can recenter Unity's world origin at the user's current position and orientation by calling the API NRHMDPoseTracker.ResetWorldMatrix
. The HelloMR-ResetCamera sample scene demonstrates how to reset the camera with this API in an app.
The main script is CameraResetController.cs
which uses a boolean to support reset camera with pitch as well.
Create a new project in Unity with NRSDK. Refer to Getting Started with NRSDK for more setting up instructions.
Create a canvas and a button;
Drag the script CameraSmoothFollow.cs to the inspector of canvas for sticking the menu in your view so you can click your reset button easily. You can adjust the speed of the button moving with your view with Follow Speed
.
Drag the script CameraResetController.cs and CanvasRaycastTarget.cs to the inspector of canvas;
Set the OnClick() event of your button, drag the canvas to the event;
Choose the function CameraResetController
-> ResetCameraToOrigin(bool)
That's it. You can build your app and test the recenter effect. If you want to reset the camera with pitch, just repeat the upper steps and choose the check box.