因此,我正在编写一个脚本,该脚本能够使用鼠标移动来旋转对象。我设置的场景是一个照相机,前面有一个物体。向左移动鼠标会导致对象向左旋转,向上移动鼠标会导致对象向上旋转,依此类推。现在,我有一个小问题。当我将对象向左或向右旋转90度,然后向上或向下旋转时,它绕Z轴而不是X轴旋转,就像我想要的那样。发生这种情况的原因是,当向左或向右旋转时,路线的Z和X轴随我之前操纵的Y轴一起旋转。
我制作了两个展示问题的GIF:
我想一直发生的事情:https : //media.giphy.com/media/wsUxoi9LyXXbB24PNg/giphy.gif
实际发生的事情:https://media.giphy.com/media/1jl3MNtMuXW9AAUQOZ/giphy.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轴旋转了任意角度,我也可以进行首选的旋转。提前致谢!
ITMISS
相关分类