使用RotateAround从前向后改变时,X轴会反转

时间:2015-01-28 10:07:40

标签: c# unity3d camera rotation

我正在使用一个垫来控制另一个物体的旋转。 我必须解决的第一个问题是,当使用RotateAround时,当我从前到后改变时,x轴会反转。

我用它修理了它:

if (lookAtItem.position.z - camera.transform.position.z > 0)
        {

            camera.RotateAround(lookAtItem.position, Vector3.right, _ComandValues[5] * _RightStickScale);
        }
        else
        {
            camera.RotateAround(lookAtItem.position, Vector3.left, _ComandValues[5] * _RightStickScale);
        }

我只是使用这个位置来理解我是否在给定对象的后面或前面。

现在出现第二个问题:

lookAtItem.position.z - camera.transform.position.z大约为0且我尝试围绕x轴旋转时,程序从lookAtItem.position.z - camera.transform.position.z > 0变为lookAtItem.position.z - camera.transform.position.z < 0的速度太快,让相机变得疯狂(我是旋转相机。)

所以有人知道发生了什么事吗?

1 个答案:

答案 0 :(得分:0)

好的,所以我在提出问题后2分钟修好了。 -_-

请注意,我之所以能够使用此解决方案只是因为相机有一个外观脚本,其中项目可以作为目标旋转(如果你没有那么你必须用正交基础来大声哭泣)。

解决方案:

用以下代码替换代码:

camera.position += camera.transform.up * _LeftStickScale * _ComandValues[5]