Unity3D入门 简单的碰撞检测

2015年03月20日 17:04 0 点赞 0 评论 更新于 2025-11-21 17:55

在这篇文章中,我们将详细介绍如何在Unity3D中完成简单的碰撞检测。具体需求为:当立方体碰到地面时,输出被立方体碰撞的地面的名称“地板”,以此表明检测到立方体与地面发生了碰撞。

第一步:搭建场景

搭建场景的具体操作,同学们只要认真看完第零章以及第零章内推荐的视频教程,相信就能轻松完成,这里就不再赘述。以下为场景截图:

我们需要在“Hierarchy”面板中找到表示地板的组件(这里使用的是Box),然后在Inspector面板中将其命名为“地板”。

第二步:编写代码

  1. 在“Project”面板中,点击“Create”旁边的小三角,选择“JavaScript”,创建一个名为“collision”的JS文件。
  2. 双击该文件,系统会启动MonoDevelop来编辑这个JS文件。
  3. 清除文件里默认创建的代码,然后编写以下代码:
    function OnCollisionEnter(obj:Collision) {
    Debug.Log(obj.gameObject.name);
    }
    

    代码解释

    • OnCollisionEnter 函数:这是一个特殊的函数,当被绑定的物体与其他物体发生碰撞时,该函数会被自动调用。
    • obj 参数:它代表被撞的物体,其类型为 Collision。在我们这个例子中,obj 对应的就是“地板”。obj 携带了一个变量 gameObject,通过 obj.gameObject.name 可以获取到我们碰撞的物体的名称,也就是我们为地板设置的名称。

第三步:将脚本文件拖到立方体上实现绑定

这一步操作非常简单,在“Project”面板中选中 collision 脚本,按住鼠标左键不放,直接将其拖入“Hierarchy”面板中,并放到立方体上,松开鼠标即可完成绑定。

第四步:运行程序

点击顶部的小三角来运行程序。程序运行后,当立方体与地板发生碰撞时,Unity3D底部的状态栏将会输出地板的名称。

至此,简单的碰撞检测功能就实现了。

作者信息

menghao

menghao

共发布了 3994 篇文章