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...
NavigationRegion3D
Sperimentale: This class may be changed or removed in future versions.
Eredita: Node3D < Node < Object
Una regione 3D attraversabile che gli NavigationAgent3D possono utilizzare per la ricerca del percorso.
Descrizione
Una regione 2D attraversabile basata su un NavigationMesh che i NavigationAgent3D possono utilizzare per la ricerca del percorso.
Due regioni possono essere collegate tra loro se condividono un bordo simile. Puoi impostare la distanza minima tra due vertici richiesta per collegare due bordi tramite NavigationServer3D.map_set_edge_connection_margin().
Nota: Sovrapporre i poligoni di navigazione di due regioni non è abbastanza per collegare due regioni. Devono condividere un bordo simile.
Il costo per entrare in questa regione da un'altra regione può essere controllato con la proprietà enter_cost.
Nota: Questa proprietà non viene aggiunta al costo del percorso quando la posizione di partenza è già all'interno di questa regione.
Il costo per percorrere distanze all'interno di questa regione può essere controllato con il moltiplicatore travel_cost.
Nota: Questo nodo memorizza nella cache le modifiche apportate alle sue proprietà, quindi se si apportano modifiche al RID della regione sottostante nel NavigationServer3D, queste non saranno riflesse nelle proprietà di questo nodo.
Tutorial
Proprietà
|
||
|
||
|
||
|
||
|
Metodi
void |
bake_navigation_mesh(on_thread: bool = true) |
get_bounds() const |
|
get_navigation_layer_value(layer_number: int) const |
|
get_navigation_map() const |
|
get_region_rid() const |
|
get_rid() const |
|
is_baking() const |
|
void |
set_navigation_layer_value(layer_number: int, value: bool) |
void |
set_navigation_map(navigation_map: RID) |
Segnali
bake_finished() 🔗
Notifica quando l'operazione di preparazione della mesh di navigazione è stata completata.
navigation_mesh_changed() 🔗
Notifica quando il NavigationMesh è cambiato.
Descrizioni delle proprietà
Determina se il NavigationRegion3D è abilitato o disabilitato.
Quando la ricerca del percorso entra nella mesh di navigazione di questa regione dalla mesh di navigazione di un'altra regione, il valore di enter_cost viene aggiunto alla distanza del percorso per determinare il percorso più breve.
Un campo di bit che determina tutti gli strati di navigazione a cui appartiene la regione. Questi strati di navigazione possono essere controllati quando si richiede un percorso con NavigationServer3D.map_get_path().
NavigationMesh navigation_mesh 🔗
void set_navigation_mesh(value: NavigationMesh)
NavigationMesh get_navigation_mesh()
La risorsa NavigationMesh da utilizzare.
Quando la ricerca del percorso si muove all'interno della mesh di navigazione di questa regione, le distanze percorse vengono moltiplicate per il valore di travel_cost per determinare il percorso più breve.
bool use_edge_connections = true 🔗
Se abilitato, la regione di navigazione utilizzerà le connessioni ai bordi per connettersi ad altre regioni di navigazione in prossimità del margine di connessione ai bordi della mappa di navigazione.
Descrizioni dei metodi
void bake_navigation_mesh(on_thread: bool = true) 🔗
Prepara il NavigationMesh. Se on_thread è impostato su true (predefinito), la preparazione viene eseguita su un thread separato. Preparare su un thread separato è utile perché la preparazione della navigazione è un'operazione costosa. Quando è completato, imposta automaticamente il nuovo NavigationMesh. Si noti che la preparazione su un thread separato può essere molto lenta se la geometria viene analizzata dalle mesh, poiché l'accesso asincrono a ciascuna mesh comporta molta sincronizzazione. Si noti inoltre che la preparazione su un thread separato è automaticamente disabilitata sui sistemi operativi che non possono utilizzare i thread (ad esempio su Web con thread disabilitati).
Restituisce la bounding box allineata agli assi per la mesh trasformata di navigazione della regione.
bool get_navigation_layer_value(layer_number: int) const 🔗
Restituisce se lo strato specificato della maschera di bit navigation_layers è abilitato o meno, fornito un layer_number tra 1 e 32.
RID get_navigation_map() const 🔗
Restituisce il RID attuale della mappa di navigazione utilizzata da questa regione.
Deprecato: Use get_rid() instead.
Restituisce il RID di questa regione sul NavigationServer3D.
Restituisce il RID di questa regione sul NavigationServer3D. In combinazione con NavigationServer3D.map_get_closest_point_owner(), questo metodo può essere utilizzato per identificare il NavigationRegion3D più vicino a un punto sulla mappa unita di navigazione.
Restituisce true quando il NavigationMesh è in fase di preparazione su un thread in background.
void set_navigation_layer_value(layer_number: int, value: bool) 🔗
In base al value, abilita o disabilita lo strato specificato nella maschera di bit navigation_layers, fornito un layer_number compreso tra 1 e 32.
void set_navigation_map(navigation_map: RID) 🔗
Imposta il RID della mappa di navigazione che questa regione dovrebbe usare. Per impostazione predefinita, la regione si unirà automaticamente alla mappa predefinita di navigazione del World3D, quindi questa funzione è necessaria solo per sovrascrivere la mappa predefinita.