不会足够快地破坏物体并导致另一次碰撞

时间:2017-09-15 22:04:50

标签: unity3d collision-detection collider

我检测到一颗子弹是否击中了一个敌人的敌人:

void OnTriggerEnter (Collider other)
{
    if (other.tag == "Bullet") {
        Destroy (other); // or Destroy (other, 0);
    }
}

问题是,当一颗子弹击中敌人时,它的生命值会降至零(从100开始),好像被击中不止一次(我也用Debug.log检查过)。

那么有没有办法让子弹更快地摧毁,以免它再次触发?

此外,这个检测脚本应该放在敌人还是子弹上?

1 个答案:

答案 0 :(得分:3)

而不是Destroy(other)使用Destroy(other.gameObject)。其他只是一个对撞机参考而不是实际的游戏对象本身。

同样只是为了良好做法,而不是将标记与==使用other.CompareTag(String tagName)进行比较。它消耗的内存更少。