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...
NavigationObstacle2D
Sperimentale: This class may be changed or removed in future versions.
Eredita: Node2D < CanvasItem < Node < Object
Ostacolo 2D utilizzato per influenzare la preparazione della mesh di navigazione o limitare le velocità degli agenti controllati dall'evasione.
Descrizione
Un ostacolo necessita di una mappa di navigazione e di un contorno di vertici vertices definiti per funzionare correttamente. I contorni non possono incrociarsi o sovrapporsi.
È possibile includere gli ostacoli nel processo di preparazione della mesh di navigazione quando affect_navigation_mesh è abilitato. Non aggiungono geometria percorribile, ma il loro ruolo è quello di scartare altra geometria sorgente all'interno della forma. Questo può essere utilizzato per impedire che la mesh di navigazione appaia in luoghi indesiderati. Se carve_navigation_mesh è abilitato, la forma preparata non sarà influenzata dagli offset della preparazione della mesh di navigazione, ad esempio il raggio degli agenti.
Con avoidance_enabled l'ostacolo può limitare le velocità di evasione degli agenti di evasione. Se i vertici dell'ostacolo sono avvolti in senso orario, gli agenti di evasione saranno spinti dentro dall'ostacolo, altrimenti, gli agenti di evasione saranno spinti fuori. Gli ostacoli che utilizzano vertici ed evasione possono deformarsi in una nuova posizione, ma non dovrebbero essere spostati a ogni singolo frame, poiché ogni modifica richiede una ricostruzione della mappa di evasione.
Tutorial
Proprietà
|
||
|
||
|
||
|
||
|
||
|
||
|
Metodi
get_avoidance_layer_value(layer_number: int) const |
|
get_navigation_map() const |
|
get_rid() const |
|
void |
set_avoidance_layer_value(layer_number: int, value: bool) |
void |
set_navigation_map(navigation_map: RID) |
Descrizioni delle proprietà
bool affect_navigation_mesh = false 🔗
Se abilitato e analizzato in un processo di preparazione della mesh di navigazione, l'ostacolo scarterà la geometria sorgente all'interno della sua forma definita dai vertices.
bool avoidance_enabled = true 🔗
Se true l'ostacolo influenza l'evasione usando degli agenti.
Un campo di bit che determina gli strati di evasione per questo ostacolo. Gli agenti con un bit corrispondente sulla loro maschera di evasione eviteranno questo ostacolo.
bool carve_navigation_mesh = false 🔗
Se abilitato, i vertici dell'ostacolo saranno intagliati nella mesh di navigazione preparata con la forma non influenzata da offset aggiuntivi (ad esempio il raggio degli agenti).
Sarà comunque influenzata da un'ulteriore post-elaborazione del processo di preparazione, come la semplificazione di spigoli e poligoni.
Richiede che affect_navigation_mesh sia abilitato.
Imposta il raggio di evasione per l'ostacolo.
Vector2 velocity = Vector2(0, 0) 🔗
Imposta la velocità desiderata per l'ostacolo in modo che altri agenti possano prevedere meglio l'ostacolo se viene spostato con una velocità regolare (ogni frame) invece di essere deformato in una nuova posizione. Influisce solo sull'evasione entro il radius degli ostacoli. Non fa nulla per i vertici statici degli ostacoli.
PackedVector2Array vertices = PackedVector2Array() 🔗
void set_vertices(value: PackedVector2Array)
PackedVector2Array get_vertices()
I vertici del contorno dell'ostacolo. Se i vertici sono avvolti in senso orario gli agenti saranno spinti dentro dall'ostacolo, altrimenti saranno spinti fuori. I contorni non possono essere incrociati o sovrapposti. Se i vertici che utilizzano l'ostacolo vengono deformati in una nuova posizione, gli agenti non possono prevedere questo movimento e potrebbero rimanere intrappolati all'interno dell'ostacolo.
Note: The returned array is copied and any changes to it will not update the original property value. See PackedVector2Array for more details.
Descrizioni dei metodi
bool get_avoidance_layer_value(layer_number: int) const 🔗
Restituisce se lo strato specificato del bitmask avoidance_layers è abilitato, dato un layer_number tra 1 e 32.
RID get_navigation_map() const 🔗
Restituisce il RID della mappa di navigazione per questo nodo NavigationObstacle. Questa funzione restituisce sempre la mappa impostata sul nodo NavigationObstacle e non la mappa dell'ostacolo astratto sul NavigationServer. Se la mappa dell'ostacolo viene modificata direttamente con l'API NavigationServer, il nodo NavigationObstacle non sarà a conoscenza della modifica della mappa. Utilizza set_navigation_map() per modificare la mappa di navigazione per NavigationObstacle e aggiornare anche l'ostacolo sul NavigationServer.
Restituisce il RID di questo ostacolo sul NavigationServer2D.
void set_avoidance_layer_value(layer_number: int, value: bool) 🔗
Basato su value, attiva o disattiva lo strato specificato nel bitmask avoidance_layers, dato un layer_number tra 1 e 32.
void set_navigation_map(navigation_map: RID) 🔗
Imposta il RID della mappa di navigazione questo nodo NavigationObstacle dovrebbe usare e aggiorna anche l'obstacolo obstacle sul NavigationServer.