我有一个要在rotate
和Vector3.up
上Vector3.left
进行的航天飞机,以便玩家可以用航天飞机向上/向下和向左/向右看。
这是我使用的代码:
// Rotate the ship
transform.Rotate(Vector3.up, distX * rotateSpeed * Time.deltaTime, Space.Self);
transform.Rotate(Vector3.left, distY * rotateSpeed * Time.deltaTime, Space.Self);
其中distX
是旋转强度的值,基于Mouse X
-轴,而rotateSpeed
只是旋转速度的值。
但是,如果我使用此脚本旋转我的船,那么它也会沿z轴旋转。
我不知道为什么要这么做。这是我代码中仅有的几行与航天飞机旋转有关的事情。
我尚未尝试将Vector3.up
替换为transform.up
,将Vector3.left
替换为transform.right
(第二次也将distY
更改为-distY
情况),但也没有用。
答案 0 :(得分:0)
您可以将0的欧拉值分配给z,就像这样可以限制z轴上的旋转:
distX = Input.GetAxis("Vertical") * rotateSpeed * Time.deltaTime;
distY = Input.GetAxis("Horizontal") * rotateSpeed * Time.deltaTime;
transform.rotation = Quaternion.Euler(distX, distY, 0f);