设为首页 加入收藏

TOP

Android+Unity3D游戏开发之简单的碰撞检测
2014-11-24 12:58:03 来源: 作者: 【 】 浏览:0
Tags:Android Unity3D 游戏 开发 简单 碰撞 检测


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

function OnCollisionEnter(obj:Collision)
{

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


onCollisionEnter函数解释:这个函数是在被绑定的物体与其他物体发生碰撞的时候被调用。
obj参数解释:被撞的物体参数,类型是Collision,在本例中就是“地板”.携带变量gameObject,是我们碰撞的物体name,就是我们为地板设置的name。

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


这步很容易操作,在"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);//如果检测到对方是敌人,则消灭对方。}}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android+Unity3D游戏开发之音效播.. 下一篇Android+Unity3D的Prefabs(预设)..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Python中文网 - 人生 (2025-12-24 18:49:47)
·【整整648集】这绝对 (2025-12-24 18:49:44)
·Python超详细一条龙 (2025-12-24 18:49:42)
·【超详细】JDK 下载 (2025-12-24 18:19:32)
·Java_百度百科 (2025-12-24 18:19:29)