如何使用度数输入围绕物体上下旋转 Unity 相机

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

给定一个输入角度,我想将面向目标对象的相机从自上而下的位置(在图像中:90 度)移动到底部平面,沿着像球面一样的曲线。

图像左侧是一个上下方向的滑块,发射值从 0-90(度)。如果滑块在 45 度,相机应该移动到对角线位置,如图像的中心,如果滑块在 0,它应该在地板上,仍然面对目标物体。 请注意图像的右侧部分,从上到下查看情况:相机可能位于 x-z 平面上的任何位置。该线是相机和目标对象之间的 x-z 角。向上或向下移动时,相机应保持在这条线上。

我有凸轮的变换和位置、目标对象的变换和位置、两个位置之间的 Vector3 距离以及 0-90 度的输入角度。

但我不明白如何获得和使用凸轮和目标之间的角度。我找不到一个完整的例子来解决这个问题,只有一些片段,所以我在欧拉角、四元数、transform.rotate、transform.rotation、AngleAxis、LookRotation 和谷歌让我考虑的许多其他事情之间迷失了方向,比如作为弧球相机。

有人可以给我一个步骤示例吗?按照图像中的描述移动相机的正确方法是什么?有点像

void moveCamUpDownToDegree(float degree, Camera cam, Transform centerObjectTransform) {
    Vector 3 newCamPosition;

    //how to calculate the new position?

    cam.transform.position = newCamPosition;
    //last line if needed
    cam.transform.LookAt(centerObjectTransform);
        
}

感谢您的帮助。

unity3d camera rotation
© www.soinside.com 2019 - 2024. All rights reserved.