Unity - 如何使gameObject在碰到两个碰撞器时只发生一次碰撞

时间:2016-11-27 17:30:12

标签: c# unity3d collision-detection collider

嗨,我有疑问,到目前为止我还没有找到答案。我有两个游戏对象彼此相邻,每个游戏对象都有一个对撞机。现在,当第三个对象与其中一个游戏对象发生碰撞时,该第三个对象的方向/反弹基于其触摸的游戏对象/碰撞对象采用不同的方向。当游戏对象被干净地击中但是当它碰撞在两个碰撞器的中间然后它在中间采取方向时,这在大多数情况下工作正常,这对我的游戏造成问题。

我想知道当任何其他物体碰撞时,即当它碰到两个游戏对象的连接时,如何确保只触发一个碰撞器/碰撞(并不重要)。

1 个答案:

答案 0 :(得分:3)

碰撞发生在帧的开头,因此您可以在LateUpdate中检测到碰撞并重置:

private bool hasCollided = false;
void OnCollisionEnter(Collision col)
{
    if(this.hasCollided == true){ return; }
    this.hasCollided = true;
}
void LateUpdate()
{
    this.hasCollided = false;
}
相关问题