Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

После того, как у вас есть NavMeshсетка, которую Unity создает для аппроксимации пешеходных областей и препятствий в вашей среде для поиска пути и Навигация под управлением ИИ. Подробнее
Смотрите в Словарь
запеченный для вашего уровня пора создайте персонажа, который сможет перемещаться по сценеСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
См. в Словарь
. Мы собираемся построить наш прототип агента из цилиндра и привести его в движение. Это делается с помощью компонента агента NavMesh и простого скрипта.

Сначала создадим персонажа:

  1. Создайте цилиндр: GameObject > 3D Object > Cylinder.
  2. Размеры цилиндра по умолчанию (высота 2 и радиус 0,5) хороши для агента в форме гуманоида, поэтому мы оставим их как есть.
  3. Добавьте компонент Агент 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; } }

Далее нам нужно создать простой скрипт, который позволит вам отправить вашего персонажа в пункт назначения, указанный другим игровым объектом, и Сферу, которая будет пунктом назначения для перемещения:

  1. Создайте новый скрипт C# (MoveTo.cs) и замените его содержимое приведенным выше скриптом.
  2. Назначьте сценарий MoveTo только что созданному персонажу.
  3. Создайте сферу, это будет место назначения, куда переместится агент.
  4. Переместите сферу от персонажа в место, близкое к поверхности NavMesh.
  5. Выберите персонажа, найдите сценарий MoveTo и назначьте сферу свойству Goal.
  6. Нажмите «Воспроизвести»; вы должны увидеть, как агент переходит к местоположению сферы.

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

Дополнительная литература

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3