壹.
OnTriggerEnter和OnTriggerExit
一. 触发时机
OnTriggerEnter:当一个游戏对象的碰撞体被标记为触发器(Is Trigger 选项被勾选),并且与另一个游戏对象的碰撞体发生接触时,该函数被调用。
OnTriggerExit:当一个带有触发碰撞体的游戏对象与另一个带有触发碰撞体的游戏对象结束碰撞时,该函数被调用。
二.参数类型
Collider other
三.用途举例
OnTriggerEnter:
void OnTriggerEnter(Collider collider)
{
if(other.ComparteTag("Player"))
{
Debug.Log("Player entered the area.");
//触发任务开始逻辑
}
}
OnTriggerExit:
void OnTriggerExit(Collider collider)
{
if(other.CompareTag("Player"))
{
Debug.Log("Palyerv left the area.");
//离开任务区域
}
}
贰.
OnCollisionrEnter和OnCollisionExit
一. 触发时机
OnCollisionEnter:当两个非触发器(Is Trigger 未勾选)的碰撞体开始接触时被调用。
OnCollisionrExit:当两个非触发器的碰撞体结束接触时被调用。
二.参数类型
Collision collision
三.用途举例
OnCollisionEnter:
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag("Enemy"))
{
//减少玩家生命值
}
}
OnCollisionExit:
void OnCollisionrExit(Collision collision)
{
if(collision.gameObject.CompareTag("Platform"))
{
//播放离开平台音效
}
}
综上所述:
区别OnTriggerEnter和OnCollisionEnter
OnTriggerEnter中勾选一个 Is Trigger即可.
OnCollisionEnter中 不用勾选 Is aTrigger.
碰撞物体必须有碰撞器(根据物体形状 如:Box Collider).