Unity - OnTriggerStay2D() 同时用于 2 个碰撞器

Unity - OnTriggerStay2D() for 2 colliders simultaneously

我正在使用一个 OnTriggerStay2D() 函数,该函数在碰撞器内部的对象时执行某些操作(无关紧要)。然而,有时我有另一个,所以总共有 2 个对撞机可能留在那个对撞机内。两个对撞机不在同一个Game Object上。 我正在尝试这样:

void OnTriggerStay2D(Collider2D other)
{
    if (other.gameObject.CompareTag("Obj1"))
    {
        //do something
    } 
    if (other.gameObject.CompareTag("Obj2"))
    {
        //do something else
    }
}

但是 做点别的事情Obj1 已经在里面时就不会发生了。 OnTriggerStay2D()?

如何让对撞机同时感知两个对撞机

编辑澄清:

OnTriggerStay2D() 仍然会被调用。问题是代码永远不会到达 if 语句,我必须在其中 做其他事情 评论。

调用OnTriggerStay2D函数时,不会报告多个GameObjects正在接触。它 return 只是一个 trigger/Collider2D 信息。在下一个物理帧左右之后,它将再次被调用。这次它将 return 其他 trigger/Collider2D 接触 the-same GameObject 的信息。

在你的例子中,在 Obj1 被 returned 之后,OnTriggerStay2D 将在下一个物理框架中被调用 Obj2 return编辑。