NavigationMeshSourceGeometryData3D
Экспериментальное: This class may be changed or removed in future versions.
Наследует: Resource < RefCounted < Object
Контейнер для проанализированных исходных геометрических данных, используемых при запекании навигационной сетки.
Описание
Контейнер для проанализированных исходных геометрических данных, используемых при запекании навигационной сетки.
Методы
void |
add_faces(faces: PackedVector3Array, xform: Transform3D) |
void |
add_mesh(mesh: Mesh, xform: Transform3D) |
void |
add_mesh_array(mesh_array: Array, xform: Transform3D) |
void |
add_projected_obstruction(vertices: PackedVector3Array, elevation: float, height: float, carve: bool) |
void |
append_arrays(vertices: PackedFloat32Array, indices: PackedInt32Array) |
void |
clear() |
void |
|
get_indices() const |
|
get_projected_obstructions() const |
|
get_vertices() const |
|
has_data() |
|
void |
merge(other_geometry: NavigationMeshSourceGeometryData3D) |
void |
set_indices(indices: PackedInt32Array) |
void |
set_projected_obstructions(projected_obstructions: Array) |
void |
set_vertices(vertices: PackedFloat32Array) |
Описания метода
void add_faces(faces: PackedVector3Array, xform: Transform3D) 🔗
Добавляет массив позиций вершин к геометрическим данным для запекания навигационной сетки для формирования триангулированных граней. Для каждой грани массив должен иметь три позиции вершин в порядке обхода по часовой стрелке. Поскольку ресурсы NavigationMesh не имеют преобразования, все позиции вершин должны быть смещены преобразованием узла с помощью xform.
void add_mesh(mesh: Mesh, xform: Transform3D) 🔗
Добавляет геометрические данные ресурса Mesh к данным запекания навигационной сетки. Сетка должна иметь допустимые данные триангулированной сетки, чтобы ее можно было рассмотреть. Поскольку ресурсы NavigationMesh не имеют преобразования, все позиции вершин должны быть смещены преобразованием узла с помощью xform.
void add_mesh_array(mesh_array: Array, xform: Transform3D) 🔗
Добавляет Array размером Mesh.ARRAY_MAX и с вершинами в индексе Mesh.ARRAY_VERTEX и индексами в индексе Mesh.ARRAY_INDEX к данным запекания навигационной сетки. Массив должен иметь допустимые данные триангулированной сетки, чтобы быть рассмотренным. Поскольку ресурсы NavigationMesh не имеют преобразования, все позиции вершин должны быть смещены преобразованием узла с помощью xform.
void add_projected_obstruction(vertices: PackedVector3Array, elevation: float, height: float, carve: bool) 🔗
Добавляет проецируемую форму препятствия к исходной геометрии. Вершины vertices считаются спроецированными на плоскость с осями xz, расположенными на глобальной оси y altitude и выдавленными на величину height. Если carve имеет значение true, то вырезанная форма не будет затронута дополнительными смещениями (например, радиусом агента) процесса запекания навигационной сетки.
void append_arrays(vertices: PackedFloat32Array, indices: PackedInt32Array) 🔗
Добавляет массивы vertices и indexes в конец существующих массивов. Добавляет существующий индекс как смещение к добавленным индексам.
void clear() 🔗
Очищает внутренние данные.
void clear_projected_obstructions() 🔗
Устраняет все возникающие препятствия.
Возвращает ограничивающий прямоугольник, выровненный по осям, который охватывает все сохраненные геометрические данные. Границы вычисляются при вызове этой функции, а результат кэшируется до тех пор, пока не будут сделаны дальнейшие изменения геометрии.
PackedInt32Array get_indices() const 🔗
Возвращает проанализированный массив индексов исходных геометрических данных.
Array get_projected_obstructions() const 🔗
Возвращает спроецированные препятствия в виде Array словарей. Каждый Dictionary содержит следующие записи:
vertices- PackedFloat32Array, определяющий точки контура спроецированной фигуры.elevation- float, определяющий размещение спроецированной фигуры на оси Y.height- float, определяющий, насколько спроецированная фигура выдавлена вдоль оси Y.carve- bool, определяющий, как препятствие влияет на запекание навигационной сетки. Еслиtrue, спроецированная фигура не будет затронута дополнительными смещениями, например, радиусом агента.
PackedFloat32Array get_vertices() const 🔗
Возвращает проанализированный массив вершин исходных геометрических данных.
Возвращает true, если существуют проанализированные исходные геометрические данные.
void merge(other_geometry: NavigationMeshSourceGeometryData3D) 🔗
Добавляет данные геометрии другого NavigationMeshSourceGeometryData3D к данным запекания навигационной сетки.
void set_indices(indices: PackedInt32Array) 🔗
Устанавливает индексы проанализированных исходных геометрических данных. Индексы должны быть сопоставлены с присвоенными вершинами.
Предупреждение: Неподходящие данные могут привести к сбою процесса выпечки задействованных сторонних библиотек.
void set_projected_obstructions(projected_obstructions: Array) 🔗
Устанавливает проектируемые препятствия с помощью массива словарей со следующими парами ключ-значение:
"vertices" : PackedFloat32Array
"elevation" : float
"height" : float
"carve" : bool
void set_vertices(vertices: PackedFloat32Array) 🔗
Устанавливает вершины проанализированных исходных геометрических данных. Вершины должны быть сопоставлены с присвоенными индексами.
Предупреждение: Неподходящие данные могут привести к сбою процесса выпечки задействованных сторонних библиотек.