Unity 物理事件函数

壹.

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).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值