После того, как у вас есть NavMeshсетка, которую Unity создает для аппроксимации пешеходных областей и препятствий в вашей среде для поиска пути и Навигация под управлением ИИ. Подробнее
Смотрите в Словарь запеченный для вашего уровня пора создайте персонажа, который сможет перемещаться по сценеСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
См. в Словарь. Мы собираемся построить наш прототип агента из цилиндра и привести его в движение. Это делается с помощью компонента агента NavMesh и простого скрипта.
Сначала создадим персонажа:
- Создайте цилиндр: GameObject > 3D Object > Cylinder.
- Размеры цилиндра по умолчанию (высота 2 и радиус 0,5) хороши для агента в форме гуманоида, поэтому мы оставим их как есть.
- Добавьте компонент Агент NavMesh: Компонент > Навигация > Агент NavMesh.
Теперь у вас есть простой настроенный агент NavMesh, готовый принимать команды!
Когда вы начнете экспериментировать с агентом NavMesh, вы, скорее всего, будете настраивать его размеры в соответствии с размером и скоростью вашего персонажа.
Компонент Агент NavMesh обрабатывает как поиск пути, так и управление движением персонажа. В ваших скриптахфрагмент кода, позволяющий создавать собственные компоненты, инициировать игровые события, изменять свойства компонентов с течением времени и реагировать для пользовательского ввода любым удобным для вас способом. Подробнее
См. Словарь, навигация может быть такой же простой, как установка нужного пункта назначения - с этого момента агент NavMesh может обрабатывать все.
// MoveTo.cs
using UnityEngine;
using UnityEngine.AI;
public class MoveTo : MonoBehaviour {
public Transform goal;
void Start () {
NavMeshAgent agent = GetComponent();
agent.destination = goal.position;
}
}
Далее нам нужно создать простой скрипт, который позволит вам отправить вашего персонажа в пункт назначения, указанный другим игровым объектом, и Сферу, которая будет пунктом назначения для перемещения:
- Создайте новый скрипт C# (
MoveTo.cs
) и замените его содержимое приведенным выше скриптом. - Назначьте сценарий MoveTo только что созданному персонажу.
- Создайте сферу, это будет место назначения, куда переместится агент.
- Переместите сферу от персонажа в место, близкое к поверхности NavMesh.
- Выберите персонажа, найдите сценарий MoveTo и назначьте сферу свойству Goal.
- Нажмите «Воспроизвести»; вы должны увидеть, как агент переходит к местоположению сферы.
Подводя итог, в вашем сценарии вам нужно будет получить ссылку на компонент агента NavMesh, а затем, чтобы привести агент в движение, вам просто нужно назначить позицию его destination. Инструкции по навигации содержат дополнительные примеры того, как решать распространенные игровые сценарии с помощью агента NavMesh.
Дополнительная литература
- Инструкции по навигации — распространенные варианты использования NavMesh Agent с исходным кодом.
- Внутренняя работа системы навигации – узнайте больше о следовании пути.
- Справочник по компоненту агента NavMesh — полное описание всех свойств агента NavMeshAgent.
- Справочник по сценариям агента NavMesh — полное описание API сценариев NavMeshAgent.