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.

Verwendung von NavigationRegions

NavigationRegions sind die visuelle Node-Repräsentation einer Region der Navigations-Map auf dem NavigationServer. Jeder NavigationRegion-Node enthält eine Ressource für die Daten des Navigation Mesh.

Sowohl die 2D- als auch die 3D-Version sind als NavigationRegion2D bzw. NavigationRegion3D verfügbar.

Die einzelnen NavigationRegions laden ihre 2D-Navigationspolygon- oder 3D-Navigations-Mesh-Ressourcendaten auf den Navigationsserver hoch. Die NavigationServer-Map verwandelt diese Informationen in eine kombinierte Navigations-Map für die Wegfindung.

Um eine Navigationsregion über den Szenenbaum zu erstellen, fügen Sie einen NavigationRegion2D oder NavigationRegion3D-Node zur Szene hinzu. Alle Regionen benötigen ein Navigation-Mesh, um zu funktionieren. Siehe Verwenden von Navigations-Meshes um zu lernen, wie man Navigations-Meshes erstellt und anwendet.

NavigationRegions werden automatisch global_transform-Änderungen an die Region auf dem NavigationServer weitergeben, was sie für bewegte Plattformen geeignet macht. Der NavigationServer wird versuchen, die Meshes der einzelnen Regionen zu verbinden, wenn sie nahe genug beieinander liegen. Für weitere Details siehe Verbinden von Navigations-Meshes. Um Navigationsregionen über beliebige Entfernungen zu verbinden, siehe Verwenden von NavigationLinks, um zu lernen, wie man NavigationLinks erzeugt und benutzt.

Warnung

Wenn die Transformation eines NavigationRegion-Nodes geändert wird, wird zwar die Position der Region auf dem NavigationServer aktualisiert, nicht aber die Skalierung. Eine Navigation-Mesh-Ressource hat keine Skalierung und muss vollständig aktualisiert werden, wenn die Quellgeometrie die Skalierung ändert.

Regionen können aktiviert/deaktiviert werden, und wenn sie deaktiviert sind, tragen sie nicht zu zukünftigen Pfadfindungsanfragen bei.

Bemerkung

Bestehende Pfade werden nicht automatisch aktualisiert, wenn eine Region aktiviert/deaktiviert wird.

Neue Navigationsregionen erstellen

Neue NavigationRegion-Nodes werden automatisch in der Default-Weltnavigations-Map für ihre 2D/3D-Dimension registriert.

Die Regions-RID kann dann von NavigationRegion Nodes mit get_rid() erhalten werden.

extends NavigationRegion2D

var navigationserver_region_rid: RID = get_rid()

Neue Regionen können auch mit der NavigationServer-API erstellt und zu jeder bestehenden Map hinzugefügt werden.

Wenn Regionen direkt mit der NavigationServer-API erstellt werden, muss ihnen manuell eine Navigations-Map zugewiesen werden.

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)

Bemerkung

Navigations-Regionen können nur einer einzigen Navigation Map zugewiesen werden. Wenn eine bestehende Region einer neuen Map zugewiesen wird, verlässt sie die alte Map.