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 NavigationMaps¶
Eine NavigationMap ist eine abstrakte Navigationswelt auf dem NavigationServer, die durch eine NavigationServer-RID identifiziert wird.
Eine Map kann eine nahezu unendliche Anzahl von Navigationsregionen enthalten und mit Navigations-Meshes verbinden, um die durchquerbaren Bereiche einer Spielwelt für die Pfadfindung zu bilden.
Eine Map kann Ausweichagenten enthalten. Die Kollisionsvermeidung wird auf der Grundlage der in der Karte vorhandenen Agenten berechnet.
Bemerkung
Verschiedene NavigationMaps sind vollständig voneinander isoliert, aber Navigationsregionen und Ausweichagenten können zwischen verschiedenen Maps wechseln. Der Wechsel wird bei der Synchronisation des Navigationsservers wirksam.
Default-Navigations-Maps¶
Standardmäßig erstellt Godot eine Navigations-Map für jeden World2D und World3D des Root-Viewports.
Die 2D-Default-Navigations-Map-RID kann mit get_world_2d().get_navigation_map()
von jedem von Node2D erbenden Node erhalten werden.
Die 3D-Default-Navigations-Map-RID kann mit get_world_3d().get_navigation_map()
von jedem von Node3D erbenden Node erhalten werden.
extends Node2D
var default_2d_navigation_map_rid: RID = get_world_2d().get_navigation_map()
extends Node3D
var default_3d_navigation_map_rid: RID = get_world_3d().get_navigation_map()
Neue Navigations-Maps erstellen¶
Der NavigationServer kann so viele Navigations-Maps erstellen und unterstützen, wie für ein bestimmtes Gameplay erforderlich sind. Zusätzliche Navigations-Maps werden direkt über die NavigationServer-API erstellt und verwaltet, z.B. um verschiedene Ausweichagenten oder Fortbewegungsarten von Akteuren zu unterstützen.
Für Beispiele für die Verwendung verschiedener Navigations-Maps siehe Unterstützung verschiedener Akteurstypen und Unterstützung für verschiedene Akteur-Forbewegungsarten.
Jede Navigations-Map synchronisiert einzeln die in der Warteschlange stehenden Änderungen mit ihren Navigationsregionen und Ausweichagenten. Eine Navigationskarte, die keine Änderungen erhalten hat, verbraucht wenig bis gar keine Verarbeitungszeit. Navigationsregionen und Ausweichagenten können nur Teil einer einzigen Navigations-Map sein, aber sie können jederzeit die Map wechseln.
Bemerkung
Ein Wechsel der Navigations-Map wird erst nach der nächsten Synchronisation des NavigationServers wirksam.
extends Node2D
var new_navigation_map: RID = NavigationServer2D.map_create()
NavigationServer2D.map_set_active(true)
extends Node3D
var new_navigation_map: RID = NavigationServer3D.map_create()
NavigationServer3D.map_set_active(true)
Bemerkung
Es gibt keinen Unterschied zwischen Navigations-Maps, die mit der NavigationServer2D-API oder der NavigationServer3D-API erstellt wurden.