查看: 7633|回复: 1
打印 上一主题 下一主题

碰撞测试的一个小demo,unity触发事件教程(附源码)_教程

[复制链接]

330

主题

1

听众

1450

积分

助理设计师

Rank: 4

纳金币
1448
精华
0
跳转到指定楼层
楼主
发表于 2012-7-16 15:12:19 |只看该作者 |倒序浏览

   
        
            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());

                 
                }
            
            
            
            
        
   
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

2508

主题

2

听众

3万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
32806
精华
12

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2012-8-3 18:41:17 |只看该作者
我爱纳金网~www.narkii.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-6-18 10:49 , Processed in 0.061226 second(s), 29 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部