Unity FPS摄像机旋转的陷阱

版权声明:转载请保留该链接 https://blog.csdn.net/u013826918/article/details/85939655

鼠标横向移动对应 Transform 在y轴上的旋转,纵向移动对应x轴上的旋转,一般采用以下方式。

Vector2 vector2 = new Vector2(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y"));
cameraObj.Rotate(Vector3.up, vector2.x, Space.World);
cameraObj.Rotate(transform.right * -vector2.y);

注意 line2 的第三个参数Space.World,不应该以cameraObj的up方向来旋转,而应该总是以世界坐标系的up方向来旋转。

在这里插入图片描述
如图,以摄像机的本地坐标系的up方向(绿色箭头)旋转,则会发生奇怪的效果。
绝大多数FPS游戏在横向移动视角时,永远是基于世界坐标系的up方向。

猜你喜欢

转载自blog.csdn.net/u013826918/article/details/85939655