我检测到一颗子弹是否击中了一个敌人的敌人:
void OnTriggerEnter (Collider other)
{
if (other.tag == "Bullet") {
Destroy (other); // or Destroy (other, 0);
}
}
问题是,当一颗子弹击中敌人时,它的生命值会降至零(从100开始),好像被击中不止一次(我也用Debug.log检查过)。
那么有没有办法让子弹更快地摧毁,以免它再次触发?
此外,这个检测脚本应该放在敌人还是子弹上?
答案 0 :(得分:3)
而不是Destroy(other)
使用Destroy(other.gameObject)
。其他只是一个对撞机参考而不是实际的游戏对象本身。
同样只是为了良好做法,而不是将标记与==使用other.CompareTag(String tagName)
进行比较。它消耗的内存更少。