Unity3D教程:如何限制物体的旋转角度

发表于2017-02-10
评论0 3.4k浏览
  在一些项目开发时需要限制物体的旋转角度,可能对于新手来说做起来可能比较复杂,为了加快大家的开发进度,下面就给大家介绍下Unity3D中限制物体的旋转角度脚本,一起来看看吧。
  
  因为项目是移动端开发,所以下面的代码是触摸屏的,如果有需要你可以把操作方式改为PC的。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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的时候要根据实际情况进行修改。

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