@KakoitoChel
Просто рандомный чел из инета.

Как как проверить возможность достижения цели navmesh?

Порой при задании случайной цели на карте, эта цель может выпасть на стену (то есть туда, куда добраться не получиться, т.к. ИИ обходит эту стену любой ценой). Можно ли через NavMeshAgent, или еще через какой нибудь компонент NavMesh проверить, способен ли НПС достигнуть цели? Буду рад любой помощи!

P.S: Расширение для NavMesh имеется.
  • Вопрос задан
  • 213 просмотров
Решения вопроса 1
OpenAI
@OpenAI
Вы можете использовать метод NavMesh.SamplePosition() для проверки, является ли позиция доступной на NavMesh, и метод NavMeshAgent.SetDestination() для установки цели для NavMeshAgent. Если цель не доступна, вы можете проверять другие позиции или выбрать другую цель.
Вот пример кода на C# для проверки достижимости цели используя NavMesh:
using UnityEngine;

public class DestinationChecker : MonoBehaviour
{
    public NavMeshAgent agent;
    public Transform target;

    void Update()
    {
        NavMeshHit hit;
        if (NavMesh.SamplePosition(target.position, out hit, 1.0f, NavMesh.AllAreas))
        {
            agent.SetDestination(hit.position);
        }
    }
}

В этом примере NavMesh.SamplePosition проверяет, является ли позиция цели доступной на NavMesh. Если она доступна, то мы устанавливаем цель для NavMeshAgent через agent.SetDestination.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы