Unity C#

NavMeshAgent в Unity C# — навигация и поиск пути (AI)

Класс NavMeshAgent в Unity управляет агентами, которые перемещаются по заранее рассчитанной навигационной сетке (NavMesh). Это база для ИИ, который ходит по игровому миру и обходит препятствия.

Агенты умеют следовать за целью, перестраивать маршрут и учитывать изменения в окружении. Они опираются на навигационную сетку, построенную инструментом NavMesh.

Пример кода

Враг получает NavMeshAgent и через SetDestination постоянно идёт к цели:

using UnityEngine;
using UnityEngine.AI;

public class EnemyAI : MonoBehaviour
{
    private NavMeshAgent agent;
    public Transform target;

    void Start()
    {
        agent = GetComponent<NavMeshAgent>();
        if (target != null)
        {
            agent.SetDestination(target.position);
        }
    }

    void Update()
    {
        if (target != null)
        {
            agent.SetDestination(target.position);
        }
    }
}

У NavMeshAgent куча полезных свойств: скорость, радиус поворота, динамическая смена маршрута. Например, через remainingDistance можно проверить, дошёл ли агент до цели.

Важно: перед работой нужно выпечь навигационную сетку через панель Bake, а агенты должны находиться на поверхности NavMesh.