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编辑。
我正在使用一个 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编辑。