Задать вопрос
@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;
    }
}


И еще один вопрос, если не затруднит, как можно добавить зону, при вхождении в которую игрок будет смотреть на ближайшего врага?
Заранее спасибо
  • Вопрос задан
  • 109 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Профессия Инженер
по тестированию
    10 месяцев
    Далее
  • Нетология
    Разработчик игр на Unity
    13 месяцев
    Далее
  • XYZ School
    Разработка игр на Unity
    5 месяцев
    Далее
Решения вопроса 1
GavriKos
@GavriKos Куратор тега Unity
Микропетпроджект - домашнее облако homeCloud
Но если происходит Destroy любого врага, unity выдает MissingReferenceException

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

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

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