阅读(3970)
赞(0)
Unity 3D 碰撞触发实践案例
2020-07-15 09:32:58 更新
碰撞体需要和刚体一起作用来产生碰撞。
如果两个刚体撞在一起,物理引擎不会计算碰撞,除非它们包含一个碰撞体组件。
没有碰撞体的刚体会在物理模拟中相互穿透。
案例设计
本案例在 Unity 3D 内创建一个简单的三维场景,场景内放有 Sphere
和 Plane
,Plane
用于充当地面,Sphere
用于做碰撞测试,当人物与 Sphere
距离足够近时发生碰撞,小球消失。
案例实施
- 创建平面(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
。
- 运行测试。
可以发现,当人物靠近立方体盒子后,盒子会立刻消失。
以上为第一人称视角。