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.

Usando NavigationRegions

NavigationRegions são a representação visual em Nó de uma região do mapa de navegação no NavigationServer. Cada nó NavigationRegion contém um recurso para os dados da malha de navegação.

Ambas as versões 2D e 3D estão disponíveis como NavigationRegion2D e NavigationRegion3D, respectivamente.

As NavigationRegions individuais enviam seus dados de recurso de NavigationPolygon 2D ou NavigationMesh 3D para o NavigationServer. O mapa do NavigationServer transforma essa informação em um mapa de navegação combinado para a busca de caminhos.

Para criar uma região de navegação usando a árvore de cenas, adicione um nó NavigationRegion2D ou NavigationRegion3D à cena. Todas as regiões requerem um recurso de malha de navegação para funcionar. Consulte Usando malhas de navegação para aprender como criar e aplicar malhas de navegação.

As NavigationRegions enviarão automaticamente as alterações de global_transform para a região no NavigationServer, o que as torna adequadas para plataformas móveis. O NavigationServer tentará conectar as malhas de navegação de regiões individuais quando elas estiverem próximas o suficiente. Para mais detalhes, consulte Conectando malhas de navegação. O para conectar NavigationRegions ao longo de distâncias arbitrárias, consulte Usando NavigationLinks para aprender como criar e usar NavigationLinks.

Aviso

Embora a alteração da transformação de um nó NavigationRegion atualize a posição da região no NavigationServer, a alteração da escala não o faz. Um recurso de malha de navegação não possui escala e precisa ser totalmente atualizado quando a geometria de origem muda de escala.

As regiões podem ser ativadas / desativadas e, se desativadas, não contribuirão para futuras consultas de busca de caminhos.

Nota

Os caminhos existentes não serão atualizados automaticamente quando uma região for ativada / desativada.

Criando novas regiões de navegação

Novos nós NavigationRegion se registrarão automaticamente no mapa de navegação padrão do mundo para a sua respectiva dimensão 2D/3D.

O RID da região pode então ser obtido a partir dos nós NavigationRegion com get_rid().

extends NavigationRegion2D

var navigationserver_region_rid: RID = get_rid()

Novas regiões também podem ser criadas com a API do NavigationServer e adicionadas a qualquer mapa existente.

Se as regiões forem criadas diretamente com a API do NavigationServer, elas precisarão ser atribuídas manualmente a um mapa de navegação.

extends Node2D

func _ready() -> void:
    var new_region_rid: RID = NavigationServer2D.region_create()
    var default_map_rid: RID = get_world_2d().get_navigation_map()
    NavigationServer2D.region_set_map(new_region_rid, default_map_rid)

Nota

As regiões de navegação só podem ser atribuídas a um único mapa de navegação. Se uma região existente for atribuída a um novo mapa de navegação, ela sairá do mapa antigo.