码迷,mamicode.com
首页 > 编程语言 > 详细

Unity3D游戏开发之简单的碰撞检測

时间:2017-04-30 12:40:15      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:bug   div   orm   margin   rac   选中   3d游戏   3d游戏开发   系统启动   

在“Project”面板中单击“Create”旁边的小三角,选择“javascript”创建一个名为“collision”的js文件。双击它,系统启动Monodevelop来编辑js文件。
        清除里面默认创建的代码。写上。

        function OnCollisionEnter(obj:Collision)
        {

                Debug.Log(obj.gameObject.name);
        }


        onCollisionEnter函数解释:这个函数是在被绑定的物体与其它物体发生碰撞的时候被调用。


        obj參数解释:被撞的物体參数,类型是Collision。在本例中就是“地板”.携带变量gameObject,是我们碰撞的物体name,就是我们为地板设置的name。

将脚本文件拖到球上实现绑定:


        这步非常easy操作,在"Project"面板中选中collision脚本,按住鼠标左键不放。直接拖入“Hierarchie”面板中,放到立方体上,松开鼠标即完毕绑定。




点顶部的小三角执行程序:


        程序执行结果,当球与地板碰撞时,unity3d底部状态栏会输出地板的name

        

        搞定。 

OnControllerColliderHit(),这个是用于角色碰撞的。物体假设附加了Charactor Controller(Unity自带的用于角色控制的脚本)则使用这个函数检測碰撞,这是不须要加刚体的。一般的刚体之间碰撞使用OnCollisionEnter(),范围触发用OnTriggerEnter(),假设你是让两个CUBE碰撞。请确保当中一个附加了RigidBody,

 collision是个变量。通过它能够获得你所碰撞的目标的属性以及碰撞点信息和相对速度,如:collision.collider.某个组件或脚本。 void OnCollisionEnter(Collision collision){if(collision.collider.tag=="enemy")//tag是物体的标签,相当于物体的类别名称。

在每个物体的组件栏(也就是加脚本的那个区域)的最上面能够找到,默认的是UnTagged,也就是没有标签,你找找。然后点击会出现一个下拉列表,默认的已有几个Tag,你也能够加自己定义的。点击下拉列表最下方的Add Tag就能够加Tag,最后选择一个Tag作为物体的名称就能够了。

{Destroy(collision.collider.gameObject);//假设检測到对方是敌人,则消灭对方。

}}

Unity3D游戏开发之简单的碰撞检測

标签:bug   div   orm   margin   rac   选中   3d游戏   3d游戏开发   系统启动   

原文地址:http://www.cnblogs.com/yutingliuyl/p/6789101.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!