Operations with obstacles - Nav3D Doc

Docy Child

Операции с препятствиями

Вне зависимости от режима обработки препятствий процедура обработки состоит из нескольких этапов:

  1. Сбор информации о геометрии препятствия для каждого Nav3DObstacle.

    На данном этапе происходит получение списка всех геометрий, образующих препятствие, затем происходит их объединение (кластеризация).

    Положим, в transform иерархии препятствия есть несколько дочерних элементов, у каждого из которых есть MeshFilter с назначенным Mesh. Соответственно, в таком случае будет получено несколько списков треугольников, из которых состоят меши. Далее для каждого списка треугольников будет определен охватывающий объем в виде Bounds. Те списки, чьи Bounds пересекаются, будут объединены. Будем называть каждый такой отдельный список “объемом препятствия”. В результате получается один или несколько объемов препятствий. Это будет проделано для каждого обрабатываемого Nav3DObstacle на сцене.

  2. Кластеризация с уже обработанными препятствиями.

    Проверяется, пересекает(-ют) ли объемы добавляемого препятствия с объемами уже находящихся в хранилище препятствий. Если да, то происходит кластеризация с уже добавленными препятствиями. В результате получается новый список объемов препятствий.

  3. Удаление из хранилища неактуальных объемов хранимых препятствий

    Не актуальными считаются те объемы, которые пересеклись с объемами вновь добавляемого препятствия, и которые вошли с состав новых (кластеризованных) объемов.

  4. Далее происходит построение графов проходимости для новых объемов, затем эти объемы (вместе с графом внутри) добавляются в хранилище препятствий. navigation graphs are constructed for new volumes.

    These volumes are then added to the obstacle storage.

Удаление препятствия из хранилища состоит из следующих этапов:

  1. Из хранилища получается список всех объемов, содержащих треугольники удаляемого препятствия (в каждом объеме могут быть треугольники нескольких препятствий).
  2. Для каждого объема из полученного списка происходит удаление треугольников удаляемого препятствия.
  3. Далее рассматриваются только объемы, в которых после изъятия еще остались треугольники. Для этих объемов пересчитываются ограничивающие Bounds.
  4. Все объемы из первоначального списка удаляются из хранилища препятствий.
  5. Все оставленные объемы с пересчитанными Bounds кластеризуются и вновь добавляются в хранилище препятствий.

Agent log

In the second section, you can get the contents of the agent log by clicking on ...

Debug drawing

In the first section, you can visualize the agent and his nearest environment. T...

Создание и настройка описания агента из кода

All Nav3DAgentDescription parameters configured in the description inspector c...

Nav3DManager

Nav3DManager is a helper static class. Can be useful for checking whether Nav3D ...

Nav3DInitializer

To use Nav3D in playmode, you need to initialize it. The Nav3DInitializer compon...

Nav3DObstacleLoader

To use the possibility of pre-baking obstacles on the scene in editor mode and t...

Nav3DObstacle

To manage obstacles on the scene, the Nav3DObstacle component is designed. Attac...

Сочетания препятствий

We will call obstacles with the selected processing mode “Runtime” as runtim...

Операции с препятствиями

Regardless of the obstacle processing mode, the processing procedure consists of...

Немного глубже о препятствиях

As already described above, in order for an obstacle to be taken into account du...

Nav3DAgent : Debug

The Nav3DAgent and its inheritors have an inspector that provides several useful...

Nav3DAgent

As mentioned above, you can use the Nav3DAgent script as a component for your ga...

Chat Icon Close Icon
ru_RURussian