NavigationRegion3D
Experimental: This class may be changed or removed in future versions.
Hereda: Node3D < Node < Object
Una región 3D transitable que los NavigationAgent3Ds pueden usar para la búsqueda de rutas.
Descripción
Una región 3D transitable basada en un NavigationMesh que los NavigationAgent3Ds pueden usar para la búsqueda de rutas.
Dos regiones se pueden conectar entre sí si comparten un borde similar. Puedes establecer la distancia mínima entre dos vértices necesarios para conectar dos bordes utilizando NavigationServer3D.map_set_edge_connection_margin().
Nota: Superponer las mallas de navegación de dos regiones no es suficiente para conectar dos regiones. Deben compartir un borde similar.
El costo de entrar a esta región desde otra región se puede controlar con el valor enter_cost.
Nota: Este valor no se agrega al costo de la ruta cuando la posición de inicio ya está dentro de esta región.
El costo de viajar distancias dentro de esta región se puede controlar con el multiplicador travel_cost.
Nota: Este nodo almacena en caché los cambios en sus propiedades, por lo que si realiza cambios en la región RID subyacente en NavigationServer3D, no se reflejarán en las propiedades de este nodo.
Tutoriales
Propiedades
|
||
|
||
|
||
|
||
|
Métodos
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) |
Señales
bake_finished() 🔗
Notifica cuando se completa la operación de procesado de la malla de navegación.
navigation_mesh_changed() 🔗
Notifica cuando la NavigationMesh ha cambiado.
Descripciones de Propiedades
Determina si NavigationRegion3D está habilitado o deshabilitado.
Cuando la búsqueda de rutas entra en la malla de navegación de esta región desde la malla de navegación de otra región, el valor de enter_cost se agrega a la distancia de la ruta para determinar la ruta más corta.
Un campo de bits que determina todas las capas de navegación a las que pertenece la región. Estas capas de navegación se pueden verificar al solicitar una ruta con NavigationServer3D.map_get_path().
NavigationMesh navigation_mesh 🔗
void set_navigation_mesh(value: NavigationMesh)
NavigationMesh get_navigation_mesh()
El recurso NavigationMesh a utilizar.
Cuando la búsqueda de rutas se mueve dentro de la malla de navegación de esta región, las distancias recorridas se multiplican por travel_cost para determinar la ruta más corta.
bool use_edge_connections = true 🔗
Si está habilitada, la región de navegación utilizará conexiones de borde para conectarse con otras regiones de navegación dentro de la proximidad del margen de conexión de borde del mapa de navegación.
Descripciones de Métodos
void bake_navigation_mesh(on_thread: bool = true) 🔗
Procesa el NavigationMesh. Si on_thread se establece en true (predeterminado), el procesamiento se realiza en un hilo separado. El procesamiento en un hilo separado es útil porque el procesamiento de la navegación no es una operación barata. Cuando se completa, establece automáticamente el nuevo NavigationMesh. Ten en cuenta que el procesamiento en un hilo separado puede ser muy lento si la geometría se analiza desde mallas, ya que el acceso asíncrono a cada malla implica una sincronización pesada. Además, ten en cuenta que el procesamiento en un hilo separado se desactiva automáticamente en los sistemas operativos que no pueden usar hilos (como Web con hilos desactivados).
Devuelve el cuadro delimitador alineado con el eje para la malla de navegación transformada de la región.
bool get_navigation_layer_value(layer_number: int) const 🔗
Devuelve si la capa especificada de la máscara de bits navigation_layers está habilitada, dado un layer_number entre 1 y 32.
RID get_navigation_map() const 🔗
Devuelve el RID del mapa de navegación actual utilizado por esta región.
Obsoleto: Use get_rid() instead.
Devuelve el RID de esta región en el NavigationServer3D.
Devuelve el RID de esta región en el NavigationServer3D. Combinado con NavigationServer3D.map_get_closest_point_owner() se puede usar para identificar la NavigationRegion3D más cercana a un punto en el mapa de navegación fusionado.
Devuelve true cuando el NavigationMesh se está procesando en un hilo en segundo plano.
void set_navigation_layer_value(layer_number: int, value: bool) 🔗
Based on value, enables or disables the specified layer in the navigation_layers bitmask, given a layer_number between 1 and 32.
void set_navigation_map(navigation_map: RID) 🔗
Establece el RID del mapa de navegación que debe usar esta región. De forma predeterminada, la región se unirá automáticamente al mapa de navegación predeterminado de World3D, por lo que esta función solo es necesaria para sobrescribir el mapa predeterminado.