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

发表于2018-05-15
评论0 7k浏览
如果让一个3D物体进行旋转对于多数开发者来说肯定不是什么难事了,但是如果要给这个需求加个难度去限制物体的旋转角度,那应该怎么做?西面就以以东段的触摸屏代码为例,给大家介绍下限制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轴的旋转,所以大家在复制的时候要根据实际情况进行修改。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引