Unity 3D 碰撞触发实践案例
碰撞体需要和刚体一起作用来产生碰撞。
如果两个刚体撞在一起,物理引擎不会计算碰撞,除非它们包含一个碰撞体组件。
没有碰撞体的刚体会在物理模拟中相互穿透。
案例设计
本案例在 Unity 3D 内创建一个简单的三维场景,场景内放有 Sphere 和 Plane,Plane 用于充当地面,Sphere 用于做碰撞测试,当人物与 Sphere 距离足够近时发生碰撞,小球消失。
](https://atts.w3cschool.cn/attachments/image/20200715/1594777947888982.gif)
案例实施
- 创建平面(0,0,0,)和小球(0,1,0),将小球置于平面上方。
- 执行
Assets→Import Package→Customer Package命令添加第一人称资源。

- 选中第一人称资源后单击
Import 按钮导入。

由于第一人称资源自带摄像机,我们需要关掉场景中的摄像机。
- 在 Project 视图中搜索
first person controller,将其添加到 Hierarchy 视图中,并摆放到平面上合适的位置。

- 选中
Cube,为Cube 对象添加Box Collider,并勾选Is Trigger 属性。

- 编写脚本 "Colliders.cs"。
using UnityEngine;
using System.Collections;
public class Colliders:MonoBehaviour{
void OnTriggerEnter(Collider other){
if(other.tag=="Pickup"){
Destroy(other.gameObject);
}
}
}
- 将
Colliders 脚本链接到first person controller上。
- 为
Cube添加标签Pickup。
- 运行测试。
可以发现,当人物靠近立方体盒子后,盒子会立刻消失。


以上为第一人称视角。