Debug-Tools für Navigation
Bemerkung
Die Debug-Tools, Propertys und Funktionen sind nur in Godot-Debug-Builds verfügbar. Verwenden Sie sie nicht in Code, der Teil eines Release-Builds sein soll.
Navigations-Debugging aktivieren
Die Navigations-Debug-Visualisierungen sind im Editor standardmäßig aktiviert. Um Navigations-Meshes und -verbindungen auch zur Laufzeit zu visualisieren, aktivieren Sie die Option Sichtbare Navigation im Editormenü Debug.
In Godot-Debug-Builds kann das Navigations-Debugging auch über die NavigationServer-Singletons von Skripten aus ein- und ausgeschaltet werden.
NavigationServer2D.set_debug_enabled(false)
NavigationServer3D.set_debug_enabled(true)
NavigationServer2D.SetDebugEnabled(false);
NavigationServer3D.SetDebugEnabled(true);
Debug-Visualisierungen basieren derzeit auf Nodes im Szenenbaum. Wenn die NavigationServer2D oder NavigationServer3D APIs exklusiv verwendet werden, werden Änderungen nicht von den Debug-Navigationswerkzeugen reflektiert.
Einstellungen zum Navigations-Debugging
Das Aussehen des Navigations-Debugging kann in den Projekteinstellungen unter debug/shapes/navigation geändert werden. Bestimmte Debug-Funktionen können auch nach Belieben aktiviert oder deaktiviert werden, erfordern aber möglicherweise einen Neustart der Szene, um wirksam zu werden.
Polygone des Navigations-Meshes debuggen
Wenn enable_edge_lines aktiviert ist, werden die Kanten von Navigations-Mesh-Polygonen hervorgehoben. Wenn enable_edge_lines_xray ebenfalls aktiviert ist, werden die Kanten von Navigations-Meshes durch die Geometrie sichtbar.
Wenn enable_geometry_face_random_color aktiviert ist, wird die Farbe jeder Fläche des Meshs mit einer zufälligen Farbe gemischt, die wiederum mit der in geometry_face_color angegebenen Farbe gemischt wird.
Debuggen von Kantenverbindungen
Wenn zwei Navigations-Meshes innerhalb der edge_connection_margin-Distanz verbunden sind, wird die Verbindung überlagert. Die Farbe der Überlagerung wird durch edge_connection_color gesteuert. Die Verbindungen können durch Geometrie mit enable_edge_connections_xray sichtbar gemacht werden.
Bemerkung
Kantenverbindungen sind nur sichtbar, wenn der NavigationServer aktiv ist.
Debug-Performance
Um die Performance des Navigationsservers zu messen, gibt es einen eigenen Monitor, der im Editor-Debugger unter Debugger->Monitore->Navigationsprozess zu finden ist.
Navigation Process zeigt in Millisekunden an, wie lange der NavigationServer mit der Aktualisierung seiner Interna in diesem Aktualisierungsframe verbringt. Navigation Process funktioniert ähnlich wie Process für visuelles Frame-Rendering und wie Physics Process für Kollisions- und feste Updates.
Navigation Process berücksichtigt alle Aktualisierungen von Navigations-Maps, Navigationsregionen und Navigationsagenten sowie alle Ausweichberechnungen für den Aktualisierungs-Frame.
Bemerkung
Der Navigationsprozess umfasst NICHT die Performance der Wegfindung, da die Wegfindung unabhängig von der Aktualisierung des Serverprozesses auf den Navigations-Map-Daten basiert.
Der Navigationsprozess sollte im Allgemeinen so niedrig und stabil wie möglich gehalten werden, um Probleme mit der Framerate zu vermeiden. Da die Aktualisierung des Navigationsserver-Prozesses in der Mitte des Physik-Updates stattfindet, wird eine Erhöhung des Navigationsprozesses automatisch den Physikprozess um den gleichen Betrag erhöhen.
Die Navigation liefert auch detailliertere Statistiken über die aktuellen navigationsbezogenen Objekte und die Zusammensetzung der Navigations-Map auf dem NavigationServer.
Die hier gezeigten Navigationsstatistiken können nicht als gut oder schlecht für die Performance bewertet werden, da es ganz vom jeweiligen Projekt abhängt, was als angemessen oder fürchterlich übertrieben angesehen werden kann.
Navigationsstatistiken helfen bei der Identifizierung von Performance-Bottlenecks, die weniger offensichtlich sind, weil die Quelle nicht immer eine sichtbare Darstellung hat. Z.B. Performance-Probleme bei der Wegfindung, die durch zu detaillierte Navigations-Meshes mit Tausenden von Kanten/Polygonen entstehen, oder Probleme, die durch schiefgelaufene prozedurale Navigation verursacht werden.