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 轴 elevation
处并按 height
挤压。如果 carve
为 true
,则雕刻的形状将不会受到导航网格烘焙过程的额外偏移(例如代理半径)的影响。
void append_arrays(vertices: PackedFloat32Array, indices: PackedInt32Array) 🔗
将顶点数组 vertices
和索引数组 indices
追加到现有数组的末尾。追加的索引会使用现有索引进行偏移。
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) 🔗
设置解析得到的源几何体数据顶点。顶点需要与正确的索引相匹配。
警告:数据不正确会导致相关第三方库在烘焙过程中崩溃。