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) 🔗
使用包含以下键值对的字典数组设置投影障碍物:
GDScript
"vertices" : PackedFloat32Array
"elevation" : float
"height" : float
"carve" : bool
void set_vertices(vertices: PackedFloat32Array) 🔗
设置解析得到的源几何体数据顶点。顶点需要与正确的索引相匹配。
警告:数据不正确会导致相关第三方库在烘焙过程中崩溃。