Unity如何限制3D物体的旋转角度

    在项目开发中用到了限制物体的旋转角度,因为做的事移动端的,所以下面的代码是触摸屏的,如果有需要你可以把操作方式改为PC的。

    

if (1 == Input.touchCount)
        {
            Touch touch = Input.GetTouch(0);
            Vector2 deltaPos = touch.deltaPosition;
            float v_X = -5 * touch.deltaPosition.y;
            //float v_Y = -2 * touch.deltaPosition.x;
            v1.x = Mathf.Lerp(v1.x, v_X, Time.deltaTime);
            transform.localEulerAngles += new Vector3(0, v1.x, 0);
            
             //角度限制
            v1.y = Mathf.Lerp(v1.y, v_Y, Time.deltaTime);
            transform.localEulerAngles += new Vector3(v1.x, v1.y, 0);
            if (transform.localEulerAngles.x > 20 && transform.localEulerAngles.x < 180)
            {
                transform.localEulerAngles = new Vector3(20, transform.localEulerAngles.y, transform.localEulerAngles.z);
            }
            if (transform.localEulerAngles.x < 340 && transform.localEulerAngles.x > 180)
            {
                transform.localEulerAngles = new Vector3(340, transform.localEulerAngles.y, transform.localEulerAngles.z);
            }
        }
    将以上代码放在Update()中就可以了,因为我这里是水平操作Y轴的旋转,垂直操作的是Y轴的旋转,所以大家在copy的时候要根据实际情况进行修改。

猜你喜欢

转载自blog.csdn.net/caojianhua1993/article/details/53036693