This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Режимы вывода изображения
Физика
Браузер SDK 2
Лицензирование и типы лицензий
Дополнения (Add-Ons)
Демонстрационные проекты
API Samples
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Унифицированный язык шейдеров UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Навигационный меш (Navigation Mesh)

Navigation Mesh - это область навигации, которая расположена над поверхностью произвольной геометрии (меша). Фактически, Navigation Mesh - это область указанной высоты над полигонами меша, доступная для поиска пути.

В отличие от сектора навигации , Navigation Mesh позволяет следующее:

  • В пределах Navigation Mesh могут быть рассчитаны только 2D-маршруты.
  • Поиск пути может выполняться только в пределах одного Navigation Mesh. Поиск пути в следующих областях не поддерживается:

    • В пределах нескольких пересекающихся Navigation Meshe
    • Внутри пересекающихся Navigation Mesh и сектора

Смотрите также#

  • Класс NavigationMesh для управления навигационными мешами через API
  • Статья Создание маршрутов чтобы узнать, как создавать маршруты внутри навигационного меша
  • Набор примеров в папке <UnigineSDK>/data/samples/paths:
    • mesh_00
    • route_03
  • Пример Navigation в наборе примеров C# Component Samples

Создание навигационного меша#

Перед добавлением Navigation Mesh вы должны подготовить меш, который будет использоваться в качестве основы. Такой меш создается отдельно и должен отвечать следующим требованиям:

  • Любой многоугольник меша не должен иметь общий край с более чем 2 другими многоугольниками; в противном случае произойдет ошибка.
  • Полигоны меша должны быть максимально широкими (в идеале они должны быть равносторонними). Слишком узкие и высокие многоугольники могут снизить точность расчета пути.
  • Меш должна быть оптимизирован: он не должен содержать большого количества полигонов.

После подготовки меша, вы можете добавить Navigation Mesh в сцену через UnigineEditor:

  1. Запустите UnigineEditor.
  2. В меню выберите Create -> Navigation -> Navigation Mesh.

  3. В открывшемся диалоговом окне файла выберите необходимый меш, который будет использоваться в качестве основы для новой области навигации, и нажмите OK.

  4. Щелкните где-нибудь в мире, чтобы разместить файл Navigation Mesh. В UnigineEditor добавляется новый Navigation Mesh, и вы можете редактировать его через окно Parameters.
Примечание
Созданный Navigation Mesh предоставляет только область, в которой рассчитываются 2D-маршруты. Сами маршруты должны быть созданы из кода .

Пример#

Если у вас есть сцена с разными объектами и вам нужно рассчитать 2D-маршрут между ними, добавьте к этой сцене Navigation Mesh следующим образом:

  1. Создайте плоский меш с отверстиями в местах расположения объектов.

    Сцена
    Меш, созданный для Navigation Mesh
  2. Укажите этот меш как основу для Navigation Mesh, в пределах которой рассчитывается маршрут, и добавьте Navigation Mesh в мир. Он будет выделен зеленым цветом:

    Navigation Mesh на основе плоского меша
  3. Поместите Navigation Mesh над сценой.

    Navigation Mesh расположенный над сценой
Примечание
В данном случае вместо Navigation Mesh вы также можете использовать сектор навигации с препятствиями расположенными внутри него. Однако, для более сложных случаев предпочтительнее использовать Navigation Mesh.

Редактирование навигационного меша#

На вкладке Node окна Parameters вы можете настроить следующие параметры Navigation Mesh:

Navigation Mask Маска Navigation для Navigation Mesh должна соответствовать маске Navigation маршрута, который вычисляется в ней. В противном случае Navigation Mesh не участвует в поиске пути.
Quality Качество оптимизации расчета маршрута. Это значение указывает количество итераций, которые используются для поиска кратчайшего пути. Чем выше значение, тем больше времени занимает расчет маршрута.
Velocity Коэффициент масштабирования для скорости точки, которая движется внутри Navigation Mesh.
Dangerous

Фактор опасности, который указывает, должна ли движущаяся точка избегать Navigation Mesh.

Примечание
Если фактор опасности превышает максимальный фактор опасности, установленный для маршрута, Navigation Mesh исключается из вычислений поиска пути.
Depth Значение глубины. Это значение влияет на качество рассчитываемого маршрута. Чем больше значение глубины, тем лучше контроль над точностью и скоростью расчета маршрута. Глубина может принимать целочисленное значение в диапазоне [0;4]. По умолчанию глубина установлена на 0 для нового Navigation Mesh. Значения 2, 3, 4 используются для более глубокой эвристики.
Height Расстояние над полигонами меша, доступными для поиска пути. По умолчанию для нового Navigation Mesh высота установлена равной 1 .

Загрузка нового меша#

Чтобы загрузить новый меш, который будет использоваться в качестве основы для области навигации:

  1. На вкладке Navigation нажмите .
  2. В открывшемся диалоговом окне файла выберите нужный меш и нажмите OK.

Сохранение текущего меша#

Чтобы сохранить текущий меш, который используется в качестве основы для области навигации:

  1. На вкладке Navigation нажмите .
  2. В открывшемся диалоговом окне файла укажите имя меша и нажмите OK.
Последнее обновление: 16.08.2024
Build: ()