首页 文章

Unity对象不围绕正确的轴旋转

提问于
浏览
0

所以我正在编写一个能够使用鼠标移动旋转对象的脚本 . 我设置的场景是一个摄像头,前面有一个物体 . 向左移动鼠标会导致对象向左旋转,向上移动鼠标会导致对象向上旋转等等 . 现在我有一点问题 . 当我将对象向左或向右旋转90度然后向上或向下旋转时,它会围绕Z轴而不是X轴旋转,就像我想要的那样 . 发生这种情况是因为当向左或向右旋转时,磁道的Z轴和X轴与Y轴一起旋转 .

我制作了两个展示问题的GIF:

这是我目前使用的代码:

public float object_rotSens = 100.0f;
float object_rotY = 0.0f;
float object_rotX = 0.0f;    

void Update()
{
object_rotX += Input.GetAxis("Mouse X") * object_rotSens * Time.deltaTime;
object_rotY += Input.GetAxis("Mouse Y") * object_rotSens * Time.deltaTime;
objectImRotating.transform.localEulerAngles = new Vector3(object_rotY, -object_rotX, 0);
}

我希望有人可以帮我改变代码,所以即使对象围绕Y轴旋转任何数量,我都有首选旋转 . 提前致谢!

更新:

克里斯H帮助我解决了这个问题 . 对于任何有同样问题的人来说,这有助于我解决问题:

object_rotX = Input.GetAxis("Mouse X") * object_rotSens * Time.deltaTime;
object_rotY = Input.GetAxis("Mouse Y") * object_rotSens * Time.deltaTime;
objectImRotating.transform.RotateAround(objectImRotating.transform.position, new Vector3(object_rotY, -object_rotX, 0), 100 * Time.deltaTime);

1 回答

相关问题