纳金网

标题: 碰撞测试的一个小demo,unity触发事件教程(附源码)_教程 [打印本页]

作者: Tomoya    时间: 2012-7-16 15:12
标题: 碰撞测试的一个小demo,unity触发事件教程(附源码)_教程

   
        
            unity3.3

            

            1.新建一个cube作为 撞击测试的对象

            命名为Collider_cube

            2.再添加一个sphere 作为被撞击的物体

            命名为Enemy_cube

            3.添加一个directional light 照亮物体

            并移动2个物体的位置,以便撞击测试

            

            4.分别给2个物体创建material,这里不再创建,源码中自带材质

            5.为cube添加移动脚本GameLogin
            
            
            
                var cube:GameObject;

                 
                function Update () {

                 
                        cube=GameObject.Find("Collider_cube");

                 
                        if(Input.GetKey(KeyCode.W))

                 
                        {

                 
                                cube.transform.Translate(Vector3.forward*Time.deltaTime*10);

                 
                        }

                 
                        if(Input.GetKey(KeyCode.S))

                 
                        {

                 
                                cube.transform.Translate(Vector3.forward*Time.deltaTime*-10);

                 
                        }

                 
                        if(Input.GetKey(KeyCode.A))

                 
                        {

                 
                                cube.transform.Rotate(Vector3.up*Time.deltaTime*10);

                 
                        }

                 
                        if(Input.GetKey(KeyCode.D))

                 
                        {

                 
                                cube.transform.Rotate(Vector3.up*Time.deltaTime*-10);

                 
                        }

                 
                }
            
            
            复制代码
            必须赋予rigidbody否则将无法识别碰撞。

            将其属性设置为

            6.选择Enemy_sphere,新建一个名为 collider 的撞击 tag事件

            7.选择Enemy_sphere,为其创建碰撞脚本:
            
            
            
                var playerScore:int;

                 
                function Update () {

                 
                }

                 
                function OnTriggerEnter(otherObject:Collider)

                 
                {

                 
                        if(otherObject.gameObject.tag=="collider")

                 
                        {

                 
                                playerScore+=100;

                 
                        }

                 
                }

                 
                function OnGUI()

                 
                {

                 
                        GUI.Label(Rect(20,20,100,20),playerScore.ToString());

                 
                }
            
            
            
            
        
   

作者: 她。    时间: 2012-8-3 18:41
我爱纳金网~www.narkii.com




欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5