我正在使用一个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
语句,我必须做其他事情评论。
答案 0 :(得分:1)
调用OnTriggerStay2D
函数时,它不会报告多个正在触摸的游戏对象。它仅返回一个触发器/ Collider2D信息。在下一个物理帧左右之后,它将再次被调用。这次它将返回触及同一GameObject的其他触发器/ Collider2D信息。
在您的情况下,在返回 Obj1 之后,将在下一个物理帧中调用OnTriggerStay2D
,或者返回 Obj2 。