@Vqrlamov

Как решить проблему с поиском ближайших врагов?

Привет, есть скрипт и есть проблема. Нашел скрипт на просторах интернета. Скрипт определяет какой враг ближе всего находится к игроку. Но если происходит Destroy любого врага, unity выдает MissingReferenceException

using UnityEngine;

public class FindClosestEnemy : MonoBehaviour
{
    GameObject[] enemy;
    GameObject closest;

    public string nearest;

    void Start()
    {
        enemy = GameObject.FindGameObjectsWithTag("Enemy");
    }

    GameObject FindClosestEnemies()
    {
        float distance = Mathf.Infinity;
        Vector3 position = transform.position;
        foreach (GameObject go in enemy)
        {
            Vector3 diff = go.transform.position - position;
            float curDistance = diff.sqrMagnitude;
            if (curDistance < distance)
            {
                closest = go;
                distance = curDistance;
            }
        }
        return closest;
    }

    void Update()
    {
        nearest = FindClosestEnemies().name;
    }
}


И еще один вопрос, если не затруднит, как можно добавить зону, при вхождении в которую игрок будет смотреть на ближайшего врага?
Заранее спасибо
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
GavriKos
@GavriKos Куратор тега Unity
Но если происходит Destroy любого врага, unity выдает MissingReferenceException

Потому что надо его из массива тоже удалять. Любыми способами.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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