Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
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) 🔗
Устанавливает вершины проанализированных исходных геометрических данных. Вершины должны быть сопоставлены с присвоенными индексами.
Предупреждение: Неподходящие данные могут привести к сбою процесса выпечки задействованных сторонних библиотек.