用Mathf.Abs(绝对值)计算鼠标水平和竖直方向谁的位移更大,减少因为一丢丢的其他方向移动导致的物体微幅旋转影响后面物体旋转会越来越混乱。这样可以让物体旋转更好的单个方向进行旋转。文章来源:https://uudwc.com/A/z30B3
代码如下:文章来源地址https://uudwc.com/A/z30B3
public float speed = 2f;
void Update()
{
if (Input.GetMouseButton(0))
{
float OffsetX = Input.GetAxis("Mouse X");
float OffsetY = Input.GetAxis("Mouse Y");
if(Mathf.Abs( OffsetY)> Mathf.Abs(OffsetX))//对比水平和竖直方向谁的位移量更大,来决定旋转哪个方向,避免多个方向位移。
transform.Rotate(new Vector3(-OffsetY, 0, 0) * speed, Space.World);
else
transform.Rotate(new Vector3(0, -OffsetX, 0) * speed, Space.World);
}
}