为什么Camera.transform.Rotate(X,Y,0)更改Z?

时间:2018-12-09 01:11:45

标签: unity3d

我想用操纵杆旋转相机。 相机应该左右旋转,但不能绕z旋转。

我尝试了以下几行:

        float speed = 3.0f;
        float yRotation = speed * fY;
        float xRotation = speed * fX;

        camera.transform.Rotate(-yRotation, xRotation, 0.0f);

这似乎可行,但是在摇杆移动了几下之后,我可以看到相机旋转的z值已更改,看起来像这样:

enter image description here

有人在我的代码中看到明显的错误,还是问题出在其他地方?

1 个答案:

答案 0 :(得分:1)

好的,这是方法,我必须使用eulerAngles:

        yaw += speedH * fX;
        pitch -= speedV * fY;
        pitch = Mathf.Clamp(pitch, -20, 30);
        camera.transform.eulerAngles = new Vector3(pitch, yaw, 0.0f);