抱歉,我正在工作,无法访问我的代码,但基本上是这样。如果我将其设置为销毁“其他”,因为在更新结束之前没有任何内容被销毁,两个对象都会被标记为销毁。我不在乎现在哪一个幸存下来,只是想了解如何做到这一点的想法。将来我可能会创建一个新实例,其中 2 个实例会命中,但两者都会触发新实例的创建,并且 2 个新实例会发生碰撞等。
最佳答案
好吧,你可以制作一面旗帜来告诉你是否已被摧毁。如果是这样,你就无法摧毁任何人。然后,最先调用的“碰撞”方法将成为幸存者。它会是这样的:
private bool alreadyDead = false;
void OnCollisionEnter(Collision collision) {
if (!alreadyDead) {
MyScript script = collision.gameobject.GetComponent<MyScript>();
if (script != null) {
script.alreadyDead = true;
collision.gameobject.Destroy();
}
}
}
关于unity-game-engine - 当同一对象的 2 个实例发生碰撞时,如何仅销毁 1 个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27929273/