Автор статьи: Никита Курбатов a.k.a. Aut| Flight Dream StudioЗдравствуйте. Я знаю, что такие туториалы вроде в интернете есть, но я напишу специально для gcup. Эта функция работает только в юнити версии 3.5.
Итак... Приступим. Открываем Unity и создаём либо терраин, либо плоскость. Ставим ему слой Default и галку на Static. Как на скрине:

Теперь открываем окно Navigation в Windows => Navigation. Появилось такое окно. Теперь выбираем в Navigation Layer слой "Default" (если автоматически не стоит). И нажимаем Bake. Как на скрине:

У нас должна появиться синяя подсветка на поверхности.
Теперь создаём объект, который будет следовать за игроком (или за другим объектом, который укажем в скрипте). Указываем этому объекту компоненты Capsule Collider и Rigidbody (для чайников: это находится в окне Component => Physics). Теперь добавим ещё один компонент. Component => Navigation => Nav Mesh Agent. Теперь устанавливаем радиус. И в Nav Mesh Walkable выбираем слой "Default". Вот как на скрине(к примеру):

Теперь, как я понимаю, многие поняли, для чего мы указываем слой. Агент движется по этому слою.
Теперь пришло время писать скрипт. Создадим скрипт и назовём его AINavMesh. И пишем:
На C#
using UnityEngine;
using System.Collections;
public class AINavMesh : MonoBehaviour {
public Transform _target; // Указываем переменную, к которой будет двигаться наш агент
NavMeshAgent _agent; // Указываем переменную агента
void Start () {
_agent = (NavMeshAgent)this.GetComponent("NavMeshAgent"); // Указываем, что переменная _agent - это наш агент.
}
void Update () {
_agent.SetDestination(_target.position); // Заставляем агента двигаться в сторону _target'а
}
}
Итак. Вот скрипты. Но мы не указали агент в JS. Там мы уж укажем агент в инспекторе (извините, моя проблема перевода скриптов с C# на JS).
Теперь переходим в редактор. Вешаем скрипт на объект с NavMeshAgent'ом. Если C#, то ничего в инспекторе указывать не надо. А если JS, то укажем агент. То есть перенесём самого персонажа туда. Теперь тестим! Всё работает! Но это ещё не всё.
Дополнительная информация к статье: Чтобы сделать так, чтобы агент обходил стены, то им надо поставить слой "Default" (ну, всё так же, как и у поверхности). Ну... Это всё) До скорых встреч! Так же пользуйтесь справкой по юнити, чтобы побольше узнать о скриптах NavMesh. Ведь на NavMesh можно построить хороший ИИ и сократить кол-во строчек кода!