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.