nikerAI
@nikerAI
ЧТО?

Как исправить ошибку Failed to create agent because it is not close enough to the NavMesh?

У меня есть вот такой код, который заставляет болванчиков искать путь к рандом цели из массива. Болванчики эти спавнятся на карте раз в +- 5 секунд, но при появление они не начинают свое движение, так как Unity думает что они не находятся в поле NavMesh. Знающие, помогите, так как сам только начал изучать данный инструмент и такая ошибка сбивает мне столку.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;

public class EnemyAI : MonoBehaviour
{
    //public Transform destination;

    public GameObject[] damagedObject;
    NavMeshAgent agent;

    private int randomIndex;
    public GameObject randomTarget;
    void Start()
    {
        agent = GetComponent<NavMeshAgent>();
        agent.updateRotation = false;
        agent.updateUpAxis = false;

        
        damagedObject = GameObject.FindGameObjectsWithTag("DamagedObject");

        if (damagedObject != null && damagedObject.Length > 0 && agent != null && agent.enabled)
        {
            // Выбираем случайный индекс из массива damagedObject
            randomIndex = Random.Range(0, damagedObject.Length);
            Debug.Log(randomIndex);
            // Получаем случайный объект из массива          
            randomTarget = damagedObject[randomIndex];
         
        }
       

    }

    // Update is called once per frame
    void Update()
    {
        if (randomTarget != null)
        {
            if (agent.isOnNavMesh) // Проверка, находится ли агент в поле NavMesh
            {
                agent.SetDestination(randomTarget.transform.position);
            }
           
        }
    }
}
  • Вопрос задан
  • 155 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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