Nav3DParticularResolutionRegion : Особенности
- Использование регионов разрешения подразумевается для решения задач связанных с проходимостью графа в тесных областях пространства, таких как например узкие тоннели, маленькие отверстия, сквозь которые должна быть обеспечена возможность поиска пути. Но также в таких регионах можно задавать размер минимальной ячейки графа поиска больший, чем размер установленный на всей сцене. Это может быть полезно, когда вы наоборот хотите избежать избыточной детализации графа поиска для некоторых препятствий. Избегание избыточно высокого разрешения графа поиска благоприятно скажется на общей производительности при поиске пути.
- Октодерево является иерархической структурой, в которой размеры всех ячеек всегда кратны размеру друг друга и от уровня к уровню размер меняется с множителем два (каждый следующий уровень содержит ячейки в два раза меньше чем в предыдущем). Так что вы можете указать лишь желаемый минимальный размер ячейки. На деле реальный минимальный размер ячейки будет вычислен относительно размера указанного при инициализации Nav3D. Если например при инициализации минимальный размер был указан как 0.4, а вы указываете желаемый минимальный размер как 0.3, то фактически будет выбран размер 0.2, поскольку он должен быть уровнем ниже и получен из 0.4 делением на 2. Если же вы выберете желаемый размер как 0.7, то фактический размер будет равен 0.8, поскольку он должен быть уровнем выше и получен умножением на 2.
- В случае если препятствие находится внутри пересечения нескольких регионов с разным минимальным размером ячеек, при обработке в качестве минимальной ячейки будет выбрано наименьшее значение из значений регионов.
- Рекомендуем использовать регионы в качестве статических объектов, находящихся на сцене в момент обработки всех препятствий. Операция добавления/удаления региона во время игры повлечет повторную обработку тех runtime-препятствий, которые пересекаются регионом. Static-препятствия никак не отреагируют на удаление/добавление региона. Инициализация и деинициализация региона происходит по событиям OnEnable() и соответственно DoDisable() в Nav3DParticularResolutionRegion. Так что для инициализации региона можно создать его префаб на сцене, для деинициализации - сделать неактивным его GameObject, либо уничтожить его.