unity 给地图设置边界代码

 1  //设置地图边界:1:创建一个类  Boundary(边界)
 2     public class Boundary
 3     {
 4         public float xMin;
 5         public float xMax;
 6         public float zMin;
 7         public float zMax;
 8     }
 9     public Transform m_Transform;
10     private Rigidbody m_Rigidbody;
11     public Boundary boundary;
12     void Start () {
13         m_Transform = gameObject.GetComponent<Transform>();
14         m_Rigidbody = gameObject.GetComponent<Rigidbody>();
15         //实例化  Bundary 类 ,并给这些变量赋值;
16         boundary = new Boundary()  {  xMin = -3f, xMax = 3f, zMin = -3f, zMax = 3f  };
19     }
20     
21     void Update () {
22       
23         float fmh = Input.GetAxis("Horizontal");//得到水平移量
24         float fmv = Input.GetAxis("Vertical");  //得到垂直移量
25         Vector3 move = new Vector3(fmh,0,fmv);  //形成三维向量
26       
27 
28         if (m_Rigidbody!=null)
29         {
30             m_Rigidbody.velocity = move *10;    //得到刚体的速度
31 
32             //限制刚体的移动范围   Mathf.Clamp   一个范围
33             float fx = Mathf.Clamp(m_Rigidbody.position.x,boundary.xMin,boundary.xMax);
34             float fz = Mathf.Clamp(m_Rigidbody.position.z,boundary.zMin,boundary.zMax);
35             
36            m_Rigidbody.position = new Vector3(fx,0.0F,fz);
37 
38 
39             ///物体的倾斜角度
40             m_Rigidbody.rotation = Quaternion.Euler(0.0F,0.0F,m_Rigidbody.velocity.x*5f);
41 
42 
43         }
44 
45 
46     }
47 }

 

posted @ 2017-06-07 15:46  FXY博客  阅读(5941)  评论(0编辑  收藏  举报