为什么OnCollisionEnter2D / OnTriggerEnter2D不起作用?

时间:2019-05-13 14:43:54

标签: c# unity3d

我用过

void OnCollisionEnter2D(Collision2D col)
    {
        if (col.gameObject.tag == "Wall")
        {
            live1--;
   } 

}

一切正常。但是现在,我在Is Trigger中打开了Circle Collider2D。因此,我的游戏对象不会发生冲突,并且live--无法正常工作。

2 个答案:

答案 0 :(得分:2)

IsTrigger属性会引发OnTriggerEnter,OnTriggerExit和OnTriggerStay事件,并且不会注册冲突。如果要使用IsTrigger,必须将OnCollisionEnter2D更改为OnTriggerEnter2D。

答案 1 :(得分:1)

OnCollision事件和OnTrigger事件是互斥的,它们可以一次从一个对象触发一个或另一个,但不能同时触发。

从OnTrigger输入文档:

Trigger events are only sent if one of the colliders also has a rigidbody attached.

从OnCollision输入文档:

Collision events are only sent if one of the colliders also has a non-kinematic 
rigidbody attached.