1

嗨,我有一个问题,到目前为止我还没有找到答案。我有两个相邻的游戏对象,每个对象都有一个对撞机。现在,当第三个对象与其中一个游戏对象发生碰撞时,第三个对象的方向/反弹会根据它接触到的游戏对象/碰撞器采取不同的方向。当游戏对象被干净地击中时,这在大多数情况下都可以正常工作,但是当它在两个对撞机的中间发生碰撞时,它会在中间有一个方向,这会给我的游戏带来问题。

我想知道当任何其他对象与两者发生碰撞时,即当它碰到两个游戏对象的连接时,如何确保只触发一个对撞机/碰撞(不管是哪一个)。

4

1 回答 1

4

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

private bool hasCollided = false;
void OnCollisionEnter(Collision col)
{
    if(this.hasCollided == true){ return; }
    this.hasCollided = true;
}
void LateUpdate()
{
    this.hasCollided = false;
}
于 2016-11-27T18:01:11.273 回答