您好,我有一个问题,到目前为止我还没有找到答案。我有两个彼此相邻的游戏对象,每个都有一个对撞机。现在,当第三个对象与其中一个游戏对象发生碰撞时,该第三个对象的方向/反弹会根据它接触到的游戏对象/碰撞器而采用不同的方向。当 gameObjects 被干净地击中时,这在大多数情况下工作正常,但当它在两个碰撞体的中间碰撞时,它会在中间移动一个方向,这会给我的游戏带来问题。
我想知道如何确保当任何其他对象与两者发生碰撞时,即当它击中两个游戏对象的连接时,只触发一个对撞机/碰撞(无论哪个)。
最佳答案
碰撞发生在帧的开头,因此您可以检测到碰撞并在 LateUpdate 中重置:
private bool hasCollided = false;
void OnCollisionEnter(Collision col)
{
if(this.hasCollided == true){ return; }
this.hasCollided = true;
}
void LateUpdate()
{
this.hasCollided = false;
}
关于c# - Unity - 如何让游戏对象在碰到两个碰撞器时只发生一次碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40831775/