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

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

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

P.S: Расширение для NavMesh имеется.
  • Вопрос задан
  • 1124 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    Профессия "C# разработчик"
    1 неделя
    Далее
  • XYZ School
    C# для разработки игр
    5 месяцев
    Далее
  • Учебный центр IBS
    DEV-001_NET Шаблоны проектирования GoF. Редакция для .NET
    1 неделя
    Далее
Решения вопроса 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.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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