@Vqrlamov

Происходит Destroy нескольких врагов вместо одного?

Привет, что делаю не так? На сцене 2 одинаковых врагов, на каждого помещен скрипт, и если к примеру отнять первому 4 хп, и потом начать бить другого, то первый удалится сам по себе когда я ударю второго 4 раза. Если же полностью убить первого, и пойти ко второму, то у второго так же будет 8 хп. В чем проблема?

using UnityEngine;

public class EnemyDeath : MonoBehaviour
{
    public int enemyHealth = 8;

    private bool hitByPlayer;

    void Update()
    {
        if (hitByPlayer && Knight.punch) // Knight.punch - Проверка, если игрок нажал на кнопку удара
        {
            goblinHealth -= 1;

            if (goblinHealth <= 0)
            {
                Destroy(gameObject);
            }
        }
    }

    private void OnCollisionEnter(Collision enemy)
    {
        if (enemy.gameObject.CompareTag("Player"))
        {
            hitByPlayer = true;
        }
        else
        {
            hitByPlayer = false;
        }
    }
}
  • Вопрос задан
  • 45 просмотров
Решения вопроса 1
Casper-SC
@Casper-SC
Программист (.NET)
Сработал OnCollisionEnter, нанёс первому персонажу урон. Ушёл от первого персонажа, но у него hitByPlayer == true как был, так и остался. Ты атакуешь второго персонажа. Урон наносится сразу обоим игрокам.

Видимо, надо в OnCollisionExit вызывать
hitByPlayer = false;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы