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

clear_projected_obstructions()

PackedInt32Array

get_indices() const

Array

get_projected_obstructions() const

PackedFloat32Array

get_vertices() const

bool

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 挤压。如果 carvetrue,则雕刻的形状将不会受到导航网格烘焙过程的额外偏移(例如代理半径)的影响。


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 🔗

返回解析得到的源几何体数据顶点数据。


bool has_data() 🔗

当解析的源几何数据存在时,返回 true


void merge(other_geometry: NavigationMeshSourceGeometryData3D) 🔗

将另一个 NavigationMeshSourceGeometryData3D 的几何体数据添加到导航网格烘焙数据中。


void set_indices(indices: PackedInt32Array) 🔗

设置解析得到的源几何体数据索引。索引需要与正确的顶点相匹配。

警告:数据不正确会导致相关第三方库在烘焙过程中崩溃。


void set_projected_obstructions(projected_obstructions: Array) 🔗

使用包含以下键值对的字典数组设置投影障碍物:

GDScript

  1. "vertices" : PackedFloat32Array
  2. "elevation" : float
  3. "height" : float
  4. "carve" : bool

void set_vertices(vertices: PackedFloat32Array) 🔗

设置解析得到的源几何体数据顶点。顶点需要与正确的索引相匹配。

警告:数据不正确会导致相关第三方库在烘焙过程中崩溃。