Unity3D入门 简单的碰撞检测
在这篇文章中,我们将详细介绍如何在Unity3D中完成简单的碰撞检测。具体需求为:当立方体碰到地面时,输出被立方体碰撞的地面的名称“地板”,以此表明检测到立方体与地面发生了碰撞。
第一步:搭建场景
搭建场景的具体操作,同学们只要认真看完第零章以及第零章内推荐的视频教程,相信就能轻松完成,这里就不再赘述。以下为场景截图:
我们需要在“Hierarchy”面板中找到表示地板的组件(这里使用的是Box),然后在Inspector面板中将其命名为“地板”。
第二步:编写代码
- 在“Project”面板中,点击“Create”旁边的小三角,选择“JavaScript”,创建一个名为“collision”的JS文件。
- 双击该文件,系统会启动MonoDevelop来编辑这个JS文件。
- 清除文件里默认创建的代码,然后编写以下代码:
function OnCollisionEnter(obj:Collision) { Debug.Log(obj.gameObject.name); }代码解释
OnCollisionEnter函数:这是一个特殊的函数,当被绑定的物体与其他物体发生碰撞时,该函数会被自动调用。obj参数:它代表被撞的物体,其类型为Collision。在我们这个例子中,obj对应的就是“地板”。obj携带了一个变量gameObject,通过obj.gameObject.name可以获取到我们碰撞的物体的名称,也就是我们为地板设置的名称。
第三步:将脚本文件拖到立方体上实现绑定
这一步操作非常简单,在“Project”面板中选中 collision 脚本,按住鼠标左键不放,直接将其拖入“Hierarchy”面板中,并放到立方体上,松开鼠标即可完成绑定。
第四步:运行程序
点击顶部的小三角来运行程序。程序运行后,当立方体与地板发生碰撞时,Unity3D底部的状态栏将会输出地板的名称。
至此,简单的碰撞检测功能就实现了。