版本:Unity 6 (6000.0)
语言:English
OnCollision 事件
创建和配置触发器碰撞体

OnTrigger 事件

触发器碰撞体用于处理物体物理碰撞的不可见形状。碰撞体不需要与物体的网格完全相同形状 - 粗略的近似通常更有效,并且在游戏过程中难以区分。 更多信息
参见 术语表
不会导致碰撞当物理引擎检测到两个游戏对象的碰撞体接触或重叠时,就会发生碰撞,前提是至少有一个具有刚体组件并且正在运动。 更多信息
参见 术语表
。相反,它们检测穿过它们的其它碰撞体,并调用您可以用来启动事件的函数。

触发器的示例用途包括

  • 当玩家到达走廊尽头的特定区域时,激活过场动画。
  • 当玩家角色走到滑动门前方的空间内时,触发打开门的动画。
  • 当弹丸穿过远处的触发器碰撞体时,禁用或销毁弹丸。

使用触发器碰撞体主要涉及以下 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 事件的实际应用示例,请参见 碰撞体事件示例脚本

OnCollision 事件
创建和配置触发器碰撞体