CreatingNavMeshAgent
Создание агента NavMesh
Итак, у вас есть NavMesh, запеченный для вашего уровня, теперь настало время создать персонажа, который может ориентироваться и перемещаться по сцене Мы собираемся построить наш прототип агента из цилиндра и привести его в движение. Хорошо будет использовать для этого компонент NavMesh Agent и простой скрипт.
Для начала давайте создадим нашего персонажа:
- Создайте цилиндр: GameObject > 3D Object > Cylinder.
- Размеры цилиндра по умолчанию (высота 2 и радиус 0.5) хорошо подойдут для человекообразного агента, поэтому мы оставим все как есть.
- Добавьте компонент NavMesh Agent: Component > Navigation > NavMesh Agent.
Теперь у вас есть простой агент, готовый к приёму команд!
Когда вы начнете экспериментировать с NavMesh Agent, вы скорее всего соберетесь настроить значения размера и скорости вашего персонажа.
Компонент NavMesh Agent и управляет поиском пути, и контролирует передвижение персонажа. В своих сценариях навигация может быть такой же простой как и установка желаемого пункта назначения - NavMesh Agent может управлять всем изнутри.
// MoveTo.cs
using UnityEngine;
using System.Collections;
public class MoveTo : MonoBehaviour {
public Transform goal;
void Start () {
NavMeshAgent agent = GetComponent<NavMeshAgent>();
agent.destination = goal.position;
}
}
Далее нам нужно написать простой сценарий, который позволит вам отправить вашего персонажа в пункт назначения, определённый другим игровым объектом, и создать сферу, которая будет представлять пункт назначения:
- Создайте новый сценарий C# (
MoveTo.cs
) and replace its contents with the above script. и заменил его содержимое сценарием, находящимся выше. - Назначте сценарий MoveTo вашему только что созданному персонажу.
- Создайте сферу, это будет пункт назначения, куда будет двигаться агент.
- Переместите сферу от персонажа к месту, находящемуся рядом с поверхностью NavMesh.
- Выберите персонажа, найдите сценарий MoveTo и назначьте свойству Goal нашу сферу.
- Нажмите Play; вы должны увидеть агента, который движется к местоположению сферы.
Чтобы подвести итог, в вашем сценарии вам необходимо получить ссылку на компонент NavMesh Agent и затем чтобы привести агента в движение вам просто нужно задать позицию в его свойстве destination. В разделе "Навигация. Как сделать" даёт вам дополнительные примеры того, как решать общие игровые задачи с NavMesh Agent.