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
Sperimentale: This class may be changed or removed in future versions.
Eredita: Resource < RefCounted < Object
Contenitore per i dati sorgente geometrici analizzati, utilizzati nella preparazione della mesh di navigazione.
Descrizione
Contenitore per i dati sorgente geometrici analizzati, utilizzati nella preparazione della mesh di navigazione.
Metodi
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) |
Descrizioni dei metodi
void add_faces(faces: PackedVector3Array, xform: Transform3D) 🔗
Aggiunge un array di posizioni di vertici ai dati della geometria per la preparazione della mesh di navigazione per formare facce triangolate. Per ogni faccia l'array deve avere tre posizioni di vertici in ordine di avvolgimento in senso orario. Poiché le risorse NavigationMesh non hanno trasformazione, tutte le posizioni dei vertici devono essere compensate dalla trasformazione del nodo attraverso xform.
void add_mesh(mesh: Mesh, xform: Transform3D) 🔗
Aggiunge i dati della geometria di una risorsa Mesh ai dati di preparazione della mesh di navigazione. La mesh deve avere dati mesh triangolati validi per essere considerata. Poiché le risorse NavigationMesh non hanno trasformazione, tutte le posizioni dei vertici devono essere compensate dalla trasformazione del nodo attraverso xform.
void add_mesh_array(mesh_array: Array, xform: Transform3D) 🔗
Aggiunge un Array di dimensioni Mesh.ARRAY_MAX e con vertici all'indice Mesh.ARRAY_VERTEX e indici all'indice Mesh.ARRAY_INDEX ai dati di preparazione della mesh di navigazione. L'array deve avere dati validi dei mesh triangolati per essere considerato. Poiché le risorse NavigationMesh non hanno trasformazione, tutte le posizioni dei vertici devono essere compensate dalla trasformazione del nodo attraverso xform.
void add_projected_obstruction(vertices: PackedVector3Array, elevation: float, height: float, carve: bool) 🔗
Aggiunge una forma di ostruzione proiettata alla geometria sorgente. I vertici vertices sono considerati proiettati su un piano degli assi xz, posizionati sull'asse y globale elevation ed estrusi da height. Se carve è true la forma intagliata non sarà influenzata da offset aggiuntivi (ad esempio, raggio degli agenti) del processo di preparazione della mesh di navigazione.
void append_arrays(vertices: PackedFloat32Array, indices: PackedInt32Array) 🔗
Accoda gli array di vertici (vertices) e indici (indices) alla fine degli array esistenti. Aggiunge l'indice esistente come offset agli indici accodati.
void clear() 🔗
Svuota i dati interni.
void clear_projected_obstructions() 🔗
Cancella tutte le ostruzioni proiettate.
Restituisce una bounding box allineata agli assi che copre tutti i dati geometrici memorizzati. I limiti vengono calcolati quando si richiama questa funzione, con il risultato memorizzato nella cache finché non vengono apportate ulteriori modifiche alla geometria.
PackedInt32Array get_indices() const 🔗
Restituisce l'array di indici di dati della geometria sorgente analizzati.
Array get_projected_obstructions() const 🔗
Restituisce gli ostacoli proiettati come un Array di dizionari. Ogni Dictionary contiene le seguenti voci:
vertices- Un PackedFloat32Array che definisce i punti di contorno della forma proiettata.elevation- Un float che definisce il posizionamento della forma proiettata sull'asse y.height- Un float che definisce quanto la forma proiettata viene estrusa lungo l'asse y.carve- Un bool che definisce come l'ostacolo influisce sulla preparazione della mesh di navigazione. Setruela forma proiettata non sarà influenzata dagli offset aggiuntivi, ad esempio il raggio degli agenti.
PackedFloat32Array get_vertices() const 🔗
Restituisce l'array di vertici dei dati della geometria sorgente analizzati.
Restituisce true quando esistono dati di geometria sorgente.
void merge(other_geometry: NavigationMeshSourceGeometryData3D) 🔗
Aggiunge i dati della geometria di un altro NavigationMeshSourceGeometryData3D ai dati di preparazione della mesh di navigazione.
void set_indices(indices: PackedInt32Array) 🔗
Imposta gli indici analizzati dei dati della geometria sorgente. Gli indici devono essere abbinati ai vertici appropriati.
Attenzione: Dati inappropriati possono causare l'arresto anomalo del processo di preparazione nelle librerie coinvolte di terze parti.
void set_projected_obstructions(projected_obstructions: Array) 🔗
Imposta gli ostacoli proiettati con un array di dizionari con le seguenti coppie di chiave-valore:
"vertices" : PackedFloat32Array
"elevation" : float
"height" : float
"carve" : bool
void set_vertices(vertices: PackedFloat32Array) 🔗
Imposta i vertici analizzati dei dati della geometria sorgente. I vertici devono essere abbinati agli indici appropriati.
Attenzione: Dati inappropriati possono causare l'arresto anomalo del processo di preparazione nelle librerie coinvolte di terze parti.