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.

Connettere i mesh di navigazione

Diverse NavigationMesh vengono unite automaticamente dal NavigationServer quando almeno due posizioni dei vertici di un bordo si sovrappongono esattamente.

Per connettersi su distanze arbitrarie, consulta Utilizzo dei NavigationLink.

../../_images/navigation_vertex_merge.png

Lo stesso vale per più risorse NavigationPolygon. Finché i loro punti di contorno si sovrappongono esattamente, il NavigationServer li unirà. I contorni dei NavigationPolygon devono provenire da risorse NavigationPolygon diverse per potersi connettere.

La sovrapposizione o l'intersezione dei contorni sullo stesso NavigationPolygon non farà riuscire la creazione delle mesh di navigazione. La sovrapposizione o l'intersezione dei contorni di NavigationPolygon diversi spesso non farà riuscire la creazione delle connessioni dei bordi della regione di navigazione sul NavigationServer e si dovrebbe evitare.

../../_images/navigation_vertex_merge2.png

Avvertimento

Esattamente significa esattamente per l'unione delle posizioni dei vertici. Piccoli errori di virgola mobile, che avvengono abbastanza regolarmente con le mesh importate, non faranno unire i vertici.

Alternativamente, le mesh di navigazione non sono unite, ma sono comunque considerate connesse dal NavigationServer quando i loro bordi sono quasi paralleli e entro una certa distanza l'uno dall'altro. La distanza di connessione è definita dal parametro edge_connection_margin per ogni mappa di navigazione. In molti casi, i bordi delle mesh di navigazione non riescono a connettersi correttamente quando si sovrappongono parzialmente. È preferibile evitare qualsiasi sovrapposizione tra le mesh di navigazione per un comportamento di unione coerente.

../../_images/navigation_edge_connection.png

Se il debug della navigazione è abilitato e il NavigationServer è attivo, verranno visualizzate le connessioni stabilite nella rete di navigazione. Consulta Strumenti di debug della navigazione per ulteriori informazioni sulle opzioni di debug della navigazione.

È possibile cambiare il valore predefinito di edge_connection_margin per il 2D nelle impostazioni del progetto, in navigation/2d/default_edge_connection_margin.

È possibile cambiare il valore predefinito di edge_connection_margin per il 3D nelle Impostazioni del progetto in navigation/3d/default_edge_connection_margin.

Il valore del margine di connessione di bordo di qualsiasi mappa di navigazione si può anche cambiare in fase di esecuzione con l'API del NavigationServer.

extends Node2D

func _ready() -> void:
    # 2D margins are designed to work with 2D "pixel" values.
    var default_map_rid: RID = get_world_2d().get_navigation_map()
    NavigationServer2D.map_set_edge_connection_margin(default_map_rid, 50.0)

Nota

La modifica del margine di connessione di bordo attiverà un aggiornamento completo di tutti i collegamenti delle mesh di navigazione sul NavigationServer.