[英]Don't rotate z-axis while rotating around Vector3.up and Vector3.left
我有一个要在Vector3.up
和Vector3.left
上rotate
Vector3.left
,以便玩家可以使用Shuttle向上/向下和向左/向右查找。
这是我使用的代码:
// 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
-Axis, rotateSpeed
只是旋转速度的值。
但是,如果我使用此脚本旋转我的船,那么它也会通过z轴旋转。
而且我不知道为什么要这么做。 这是我的代码中(到目前为止)仅有的几行与Shuttle的旋转有关的事情。
我试过没是更换Vector3.up
由transform.up
和Vector3.left
通过transform.right
(也改变distY
到-distY
在第二种情况下),但也不能工作。
您可以将z的Euler值指定为0,这样可以限制z轴的旋转:
distX = Input.GetAxis("Vertical") * rotateSpeed * Time.deltaTime;
distY = Input.GetAxis("Horizontal") * rotateSpeed * Time.deltaTime;
transform.rotation = Quaternion.Euler(distX, distY, 0f);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.