Unity 3D 触发器(Trigger)
2020-07-15 09:32 更新
在 Unity 3D 中,检测碰撞发生的方式有两种:
- 利用碰撞体(Collider)。
- 利用触发器(Trigger)。
在很多游戏引擎或工具中都有触发器,它被用来触发事件。
例如,在游戏中的剧情里,玩家通过某个任务道具召唤了任务相关的 NPC 或者可击杀的怪物,就可以用触发器来实现。
当绑定了碰撞体的游戏对象进入触发器区域时,会运行触发器对象上的 OnTriggerEnter 函数
,同时需要在检视面板中的碰撞体组件中勾选 IsTrigger 复选框
。
触发信息检测使用以下 3 个函数:
MonoBehaviour.OnTriggerEnter
(Collider collider),当进入触发器时触发。
MonoBehaviour.OnTriggerExit
(Collider collider),当退出触发器时触发。
MonoBehaviour.OnTriggerStay
(Collider collider),当逗留在触发器中时触发。
Unity 3D 中的碰撞体和触发器的区别在于:
- 碰撞体是触发器的载体。
- 触发器只是碰撞体的一个属性。
如果既想要检测到物体的接触,又不想让碰撞检测影响物体移动,或者要检测一个物体是否经过空间中的某个区域,这时就可以用到触发器。
例如,碰撞体适合模拟汽车被撞飞、皮球掉在地上又弹起的效果,而触发器适合模拟人站在靠近门的位置时门自动打开的效果。
以上内容是否对您有帮助:
更多建议: