Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

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_region_rid() erhalten werden.

extends NavigationRegion3D

var navigationserver_region_rid: RID = get_region_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

var new_2d_region_rid: RID = NavigationServer2D.region_create()
var default_2d_map_rid: RID = get_world_2d().get_navigation_map()
NavigationServer2D.region_set_map(new_2d_region_rid, default_2d_map_rid)
extends Node3D

var new_3d_region_rid: RID = NavigationServer3D.region_create()
var default_3d_map_rid: RID = get_world_3d().get_navigation_map()
NavigationServer3D.region_set_map(new_3d_region_rid, default_3d_map_rid)

Bemerkung

NavigationRegions können nur einer einzigen NavigationMap zugewiesen werden. Wenn eine bestehende Region einer neuen Map zugewiesen wird, verlässt sie die alte Map.