用Mathf.Abs(绝对值)计算鼠标水平和竖直方向谁的位移更大,减少因为一丢丢的其他方向移动导致的物体微幅旋转影响后面物体旋转会越来越混乱。这样可以让物体旋转更好的单个方向进行旋转。文章来源:https://www.toymoban.com/news/detail-617483.html
代码如下:文章来源地址https://www.toymoban.com/news/detail-617483.html
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);
}
}
到了这里,关于Unity 鼠标拖动旋转物体,并且物体不会越转越乱的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!