This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
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
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Сэмплы материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

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

The Navigation Mesh is a navigation area which is arranged above the surface of an arbitrary mesh. In fact, the Navigation Mesh is an area of the specified height above the mesh polygons, which is available for pathfinding.Navigation Mesh - это область навигации, которая расположена над поверхностью произвольной геометрии (меша). Фактически, Navigation Mesh - это область указанной высоты над полигонами меша, доступная для поиска пути.

In contrast to navigation sectors, the Navigation Mesh enables the following:В отличие от сектора навигации , Navigation Mesh позволяет следующее:

  • Only 2D routes can be calculated within the Navigation Mesh.В пределах Navigation Mesh могут быть рассчитаны только 2D-маршруты.
  • Pathfinding can be performed within 1 Navigation Mesh only. Pathfinding within the following areas is not supported:Поиск пути может выполняться только в пределах одного Navigation Mesh. Поиск пути в следующих областях не поддерживается:

    • Within several intersecting Navigation MeshesВ пределах нескольких пересекающихся Navigation Meshe
    • Within the intersecting Navigation Mesh and sectorВнутри пересекающихся Navigation Mesh и сектора

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

  • The NavigationMesh class to manage navigation meshes via APIКласс NavigationMesh для управления навигационными мешами через API
  • The article on Creating Routes to learn how to create routes inside the navigation meshСтатья Создание маршрутов чтобы узнать, как создавать маршруты внутри навигационного меша
  • A set of samples located in the <UnigineSDK>/data/samples/paths folder:
    • mesh_00
    • route_03
    Набор примеров в папке <UnigineSDK>/data/samples/paths:
    • mesh_00
    • route_03
  • Navigation sample in C# Component Samples suiteПример Navigation в наборе примеров C# Component Samples

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

Before adding a Navigation Mesh, you should prepare a mesh, on which this Navigation Mesh will be based. Such mesh is created separately and should meet the following requirements:Перед добавлением Navigation Mesh вы должны подготовить меш, который будет использоваться в качестве основы. Такой меш создается отдельно и должен отвечать следующим требованиям:

  • Any polygon of the mesh must not share its edge with more than 2 other polygons; otherwise, an error will occur.Любой многоугольник меша не должен иметь общий край с более чем 2 другими многоугольниками; в противном случае произойдет ошибка.
  • Mesh polygons should be as wide as possible (ideally, they should be equilateral). Too narrow and high polygons may reduce accuracy of path calculation.Полигоны меша должны быть максимально широкими (в идеале они должны быть равносторонними). Слишком узкие и высокие многоугольники могут снизить точность расчета пути.
  • The mesh should be optimized: it should not contain a large number of polygons.Меш должна быть оптимизирован: он не должен содержать большого количества полигонов.

When a mesh is prepared, you can add the Navigation Mesh to the scene via UnigineEditor:После подготовки меша, вы можете добавить Navigation Mesh в сцену через UnigineEditor:

  1. Run UnigineEditor.Запустите UnigineEditor.
  2. On the Menu bar, click Create -> Navigation -> Navigation Mesh.В меню выберите Create -> Navigation -> Navigation Mesh.

  3. In the file dialog window that opens, choose the required mesh to be used as a base for the new navigation area and click OK.В открывшемся диалоговом окне файла выберите необходимый меш, который будет использоваться в качестве основы для новой области навигации, и нажмите OK.

  4. Click somewhere in the world to place the Navigation Mesh. A new Navigation Mesh is added to UnigineEditor and you can edit it via the Parameters window.Щелкните где-нибудь в мире, чтобы разместить файл Navigation Mesh. В UnigineEditor добавляется новый Navigation Mesh, и вы можете редактировать его через окно Parameters.
Примечание
The created Navigation Mesh only provides an area within which 2D routes are calculated. The routes themselves should be created using the script.Созданный Navigation Mesh предоставляет только область, в которой рассчитываются 2D-маршруты. Сами маршруты должны быть созданы из кода .

ExampleПример#

If you have a scene with different objects and need to calculate a 2D route among them, add the Navigation Mesh to this scene as follows:Если у вас есть сцена с разными объектами и вам нужно рассчитать 2D-маршрут между ними, добавьте к этой сцене Navigation Mesh следующим образом:

  1. Create a flat mesh with holes in places where the objects are positioned.Создайте плоский меш с отверстиями в местах расположения объектов.

    The sceneСцена
    The mesh created for the Navigation MeshМеш, созданный для Navigation Mesh
  2. Specify this mesh as a base for a Navigation Mesh within which the route is calculated, and add the Navigation Mesh to the world. It will be highlighted in green:Укажите этот меш как основу для Navigation Mesh, в пределах которой рассчитывается маршрут, и добавьте Navigation Mesh в мир. Он будет выделен зеленым цветом:

    A Navigation Mesh based on the flat meshNavigation Mesh на основе плоского меша
  3. Place the Navigation Mesh above the scene.Поместите Navigation Mesh над сценой.

    The Navigation Mesh positioned above the sceneNavigation Mesh расположенный над сценой
Примечание
In this case, you can also use a navigation sector with obstacles positioned inside it instead of the Navigation Mesh. However, the Navigation Mesh is preferred for more complex cases.В данном случае вместо Navigation Mesh вы также можете использовать сектор навигации с препятствиями расположенными внутри него. Однако, для более сложных случаев предпочтительнее использовать Navigation Mesh.

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

In the Node tab of the Parameters window, you can adjust the following parameters of the Navigation Mesh:На вкладке Node окна Parameters вы можете настроить следующие параметры Navigation Mesh:

Navigation Mask The Navigation mask of the Navigation Mesh must match the Navigation mask of the route that is calculated within it. Otherwise, the Navigation Mesh does not participate in pathfinding.Маска Navigation для Navigation Mesh должна соответствовать маске Navigation маршрута, который вычисляется в ней. В противном случае Navigation Mesh не участвует в поиске пути.
Quality Quality of optimization for route calculation. This value specifies the number of iterations that are used to find the shortcut. The higher the value, the longer the route calculation takes.Качество оптимизации расчета маршрута. Это значение указывает количество итераций, которые используются для поиска кратчайшего пути. Чем выше значение, тем больше времени занимает расчет маршрута.
Velocity Scaling factor for velocity of the point that moves inside the Navigation Mesh.Коэффициент масштабирования для скорости точки, которая движется внутри Navigation Mesh.
Dangerous

Danger factor that indicates if a moving point should try to avoid the Navigation Mesh.Фактор опасности, который указывает, должна ли движущаяся точка избегать Navigation Mesh.

Примечание
If the danger factor exceeds the maximum danger factor set for the route, the Navigation Mesh is excluded from pathfinding calculations.Если фактор опасности превышает максимальный фактор опасности, установленный для маршрута, Navigation Mesh исключается из вычислений поиска пути.
Depth Depth value. This value affects the quality of the route that is currently calculated. The more the depth value, the better control over accuracy and speed of route calculation is provided. The depth can take integer value in range [0;4]. By default, the depth is set to 0 for a new Navigation Mesh. The 2, 3, 4 values are used for deeper heuristics.Значение глубины. Это значение влияет на качество рассчитываемого маршрута. Чем больше значение глубины, тем лучше контроль над точностью и скоростью расчета маршрута. Глубина может принимать целочисленное значение в диапазоне [0;4]. По умолчанию глубина установлена на 0 для нового Navigation Mesh. Значения 2, 3, 4 используются для более глубокой эвристики.
Height Distance above the mesh polygons available for pathfinding. By default, the height is set to 1 for a new Navigation Mesh.Расстояние над полигонами меша, доступными для поиска пути. По умолчанию для нового Navigation Mesh высота установлена равной 1 .

Loading a New MeshЗагрузка нового меша#

To load a new mesh on which the navigation area is based:Чтобы загрузить новый меш, который будет использоваться в качестве основы для области навигации:

  1. On the Navigation tab, press .На вкладке Navigation нажмите .
  2. In the file dialog window that opens, choose the required mesh and press OK.В открывшемся диалоговом окне файла выберите нужный меш и нажмите OK.

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

To save the current mesh on which the navigation area is based:Чтобы сохранить текущий меш, который используется в качестве основы для области навигации:

  1. On the Navigation tab, press .На вкладке Navigation нажмите .
  2. In the file dialog window that opens, specify a name for the mesh and press OK.В открывшемся диалоговом окне файла укажите имя меша и нажмите OK.
Последнее обновление: 23.06.2023
Build: ()