触发器碰撞体用于处理物体物理碰撞的不可见形状。碰撞体不需要与物体的网格完全相同形状 - 粗略的近似通常更有效,并且在游戏过程中难以区分。 更多信息
参见 术语表不会导致碰撞当物理引擎检测到两个游戏对象的碰撞体接触或重叠时,就会发生碰撞,前提是至少有一个具有刚体组件并且正在运动。 更多信息
参见 术语表。相反,它们检测穿过它们的其它碰撞体,并调用您可以用来启动事件的函数。
触发器的示例用途包括
使用触发器碰撞体主要涉及以下 API 函数
Collider.OnTriggerEnter
:当触发器碰撞体首次与另一个碰撞体接触时,Unity 会调用此函数。Collider.OnTriggerStay
:如果检测到另一个碰撞体在触发器碰撞体内,Unity 会在每一帧上调用此函数。Collider.OnTriggerExit
:当触发器碰撞体停止与另一个碰撞体接触时,Unity 会调用此函数。以下示例在 Unity 调用每个函数时将消息打印到控制台。
using UnityEngine;
using System.Collections;
public class DoorObject : MonoBehaviour
{
// “other” refers to the collider on the GameObject inside this trigger
void OnTriggerEnter (Collider other)
{
Debug.Log ("A collider has entered the DoorObject trigger");
}
void OnTriggerStay (Collider other)
{
Debug.Log ("A collider is inside the DoorObject trigger");
}
void OnTriggerExit (Collider other)
{
Debug.Log ("A collider has exited the DoorObject trigger");
}
}
有关 OnTrigger
事件的实际应用示例,请参见 碰撞体事件示例脚本。