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


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

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

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

Похожие вопросы
Wanted. Лимассол
До 5 000 €
Wanted. Москва
До 400 000 ₽
Wanted. Санкт-Петербург
До 120 000 ₽
28 дек. 2024, в 15:35
500 руб./за проект
28 дек. 2024, в 15:31
750 руб./в час
28 дек. 2024, в 15:27
10000 руб./за проект