旋转父级,使孩子朝某个方向看

问题描述 投票:0回答:1

对象层次结构是如此:

Player
   - OVRCameraRig
       - TrackingSpace
           - CentralEyeAnchor (Camera)

默认情况下,播放器最初会朝向正确的区域,但是由于在VR中这可能会使某人校准或“居家”播放器,因此相机可以面对场景而无需在现实生活中面对该方向。这是使用Oculus Quest进行的,因此我基本上希望改变播放器的旋转偏移量,以便相机观察场景。

脚本已附加到Player,vrCamera作为CentralEyeAnchor:

        Quaternion quat = Quaternion.Inverse(rotationOffset) * vrCamera.transform.rotation;

        Vector3 euler = quat.eulerAngles;
        euler.x = 0;
        euler.z = 0;
        transform.rotation = Quaternion.Euler(euler);

        rotationOffset = transform.rotation;
c# unity3d rotation camera-calibration calibration
1个回答
0
投票

首先,找到相机和播放器之间的相对旋转relativeRot,即playerRotation == cameraRotation * relativeRot

通过将左侧的两边乘以Inverse(cameraRotation),我们知道然后是Inverse(cameraRotation) * playerRotation == relativeRot

© www.soinside.com 2019 - 2024. All rights reserved.