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

时间:2017-01-22 14:49:41

标签: c# unity3d collision-detection

我正在使用一个OnTriggerStay2D()函数,它在碰撞器内部的一个物体上做某事(无关紧要)。但是,有时我会有另一个,所以总共有两个可能留在对撞机内的对撞机。两个碰撞器不在同一个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语句,我必须做其他事情评论。

1 个答案:

答案 0 :(得分:1)

调用OnTriggerStay2D函数时,它不会报告多个正在触摸的游戏对象。它仅返回一个触发器/ Collider2D信息。在下一个物理帧左右之后,它将再次被调用。这次它将返回触及同一GameObject的其他触发器/ Collider2D信息。

在您的情况下,在返回 Obj1 之后,将在下一个物理帧中调用OnTriggerStay2D,或者返回 Obj2