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...
NavigationRegion2D
Sperimentale: This class may be changed or removed in future versions.
Eredita: Node2D < CanvasItem < Node < Object
Una regione 2D attraversabile che gli NavigationAgent2D possono utilizzare per la ricerca del percorso.
Descrizione
Una regione 2D attraversabile basata su un NavigationPolygon che i NavigationAgent2D 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 NavigationServer2D.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 della ricerca del percorso per entrare in una 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 della ricerca del percorso 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 NavigationServer2D, queste non saranno riflesse nelle proprietà di questo nodo.
Tutorial
Proprietà
|
||
|
||
|
||
|
||
|
Metodi
void |
bake_navigation_polygon(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() 🔗
Emesso quando un'operazione di preparazione del poligono di navigazione viene completata.
navigation_polygon_changed() 🔗
Emesso quando il poligono di navigazione utilizzato viene sostituito oppure vengono modificati i componenti interni del poligono di navigazione attuale.
Descrizioni delle proprietà
Determina se il NavigationRegion2D è 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 NavigationServer2D.map_get_path().
NavigationPolygon navigation_polygon 🔗
void set_navigation_polygon(value: NavigationPolygon)
NavigationPolygon get_navigation_polygon()
La risorsa NavigationPolygon 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_polygon(on_thread: bool = true) 🔗
Prepara il NavigationPolygon. Se on_thread è impostato su true (predefinito), la preparazione viene eseguita su un thread separato.
Restituisce il rettangolo allineato 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 NavigationServer2D.
Restituisce il RID di questa regione sul NavigationServer2D. In combinazione con NavigationServer2D.map_get_closest_point_owner(), questo metodo può essere utilizzato per identificare il NavigationRegion2D più vicino a un punto sulla mappa unita di navigazione.
Restituisce true quando il NavigationPolygon è 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 World2D, quindi questa funzione è necessaria solo per sovrascrivere la mappa predefinita.