Недостаточно быстрое разрушение объектов и повторное столкновение

У меня есть обнаружение, если пуля попадает в противника, который является частью сценария, который находится на враге:

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

Проблема в том, что когда пуля попадает в противника, его здоровье падает до нуля (с 100), как если бы оно было поражено более одного раза (я также проверял Debug.log).

Так есть ли способ заставить пулю быстрее разрушаться, чтобы она не сработала снова?

Кроме того, этот сценарий обнаружения должен быть на враге или на пуле?

1 ответ

Решение

Вместо Destroy(other) использование Destroy(other.gameObject), Другой - это просто ссылка на коллайдер, а не на сам игровой объект.

Также просто для хорошей практики вместо сравнения тега с использованием == other.CompareTag(String tagName), Его меньше памяти.

Другие вопросы по тегам