Bewährte Methoden für das Debuggen von Gittern für visuelle Skripts
Bearbeitungszeitdiagnose
Im Unity-Editor können Sie direkt Anleitungen zu Fehlern und potenziellen Bandbreiten- oder Leistungsengpässen für den Skriptcomputer anzeigen, den Sie derzeit im Bereich "Visual Scripting Diagnostics" des Mesh-Editors am unteren Rand des Inspektorbereichs des Unity-Editors bearbeiten.
Wenn Sie mit dem Mauszeiger auf einen Fehler, eine Warnung oder einen Hinweis im Bereich "Diagnose " zeigen, wird eine QuickInfo mit einer ausführlichen Erläuterung angezeigt:
Sie können eine Kompilierung derselben Diagnose in Ihrer gesamten Umgebung abrufen, indem Sie die Inhalts-Leistungsanalyse (Content Leistungsanalyse, CPA) anzeigen.
- Wählen Sie auf der Unity-Menüleiste die Option "Mesh Toolkit>Content Leistungsanalyse" aus.
- Klicken Sie im CPA auf die Schaltfläche "Alle ausführen".
Laufzeitdiagnose im Mesh-Emulator
Wenn Sie Ihre Umgebung im Unity-Editor testen, aktivieren Sie das Kontrollkästchen "Perf Stats " in der oberen rechten Ecke des Spielfensters , um Echtzeit-Zusammenfassungsstatistiken in allen Aspekten Ihrer Umgebung anzuzeigen:
Die spalte mit den meisten Rechten in der unteren rechten Ecke enthält zusammenfassende Informationen zur visuellen Skriptleistung, wobei die In Millisekunden pro Frame angegeben werden:
- VS-Benutzer zeigt Zeit für die Ausführung der von Ihnen erstellten visuellen Skriptflüsse an, mit Ausnahme des Aufwands, der von Mesh verursacht wird.
- VS Env zeigt Mehraufwand für die Laufzeitumgebung von Mesh Visual Scripting.
- VS Net zeigt mehr Aufwand, der durch den Mesh-Netzwerkstapel unterhalb der Laufzeit für visuelles Skripting von Mesh entsteht, das Verteilen und Empfangen von Updates für den freigegebenen Zustand.
Um detailliertere Informationen zu einzelnen visuellen Skripts zu erhalten, die in der Umgebung ausgeführt werden, können Sie Echtzeit-Laufzeitstatistiken zur visuellen Skriptausführung aktivieren, indem Sie in der oberen rechten Ecke des Spielfensters das Kontrollkästchen "Skriptstatistik" aktivieren:
Im Abschnitt "Höchste Verarbeitungslast " werden die Skriptflüsse aufgelistet, die die meiste Zeit für die Ausführung innerhalb der letzten Sekunde benötigt haben, die als durchschnittliche Zeitkosten pro Frame angezeigt werden.
- Die Anzahl der Skriptflüsse, die in diesem Abschnitt angezeigt werden, und ihre Gesamtkosten sollten so niedrig wie möglich sein.
- Im Idealfall sollte beim Leerlauf der Umgebung überhaupt kein Skriptfluss ausgeführt werden.
Der Abschnitt "Höchste freigegebene Aktualisierungsladevorgang " listet freigegebene Szeneneigenschaften und Skriptvariablen auf, die innerhalb der letzten Sekunde am häufigsten aktualisiert wurden. Eine Last von 100 % bedeutet, dass die Eigenschaft oder Variable in jedem Frame in dieser Sekunde aktualisiert wurde.
- Die Anzahl der Aktualisierungen von freigegebenen Eigenschaften und Skriptvariablen und deren Gesamtlast in diesem Abschnitt sollte so niedrig wie möglich sein.
- Idealerweise sollten beim Leerlauf der Umgebung überhaupt keine freigegebenen Eigenschaften oder Variablen aktualisiert werden.
- Wenn Sie feststellen, dass in diesem Abschnitt Eigenschaften oder Skriptvariablen angezeigt werden, die sie nicht über das Netzwerk über Clients hinweg synchronisiert werden sollen, sollten Sie erwägen, lokale Skriptbereichskomponenten hinzuzufügen, um sie lokal zu machen.
Sie können auf einen beliebigen Spielobjektnamen in der mittleren Spalte klicken, um direkt zum entsprechenden Spielobjekt im Hierarchiebereich zu springen.
Wenn Sie einen genaueren Blick auf eine Situation haben möchten, können Sie auf einen beliebigen anderen Teil des Bereichs "Skriptstatistik " klicken oder UMSCHALT+X drücken, um die Aktualisierungen vorübergehend anzuhalten. Wenn Sie die Aktualisierung fortsetzen möchten, klicken Sie erneut darauf, oder drücken Sie erneut UMSCHALT+X.
Laufzeitdiagnose in Mesh
Wenn Sie eine Umgebung in Mesh (z. B. in einem Teams-Ereignis) ausführen, können Sie STRG+UMSCHALT+F1 drücken, um die Randleiste "Netzwerkinformationen " anzuzeigen, die viele sehr technische Informationen zur aktuellen Sitzung anzeigt. Scrollen Sie nach unten, um detaillierte Informationen zu visuellen Skripts zu finden, die in der Umgebung ausgeführt werden:
Die letzte (Zahl) Sekunden-, (Number)-Frames-Anweisung direkt unterhalb der Überschrift des Visual Scripting-Abschnitts zeigt die Anzahl der Sekunden und Frames an, die für die unten angezeigten Leistungsindikatoren aggregiert wurden. Bis zu 90 Sekunden Daten werden aggregiert, bevor die Zähler zurückgesetzt werden. Die folgende Tabelle enthält Informationen zur Freigabe:
- Die Zeilen "Prop", "Var" und "Event " beschreiben freigegebene Eigenschaften, freigegebene Skriptvariablen und freigegebene Ereignisse.
- Die Spalte "Aktualisieren" zählt, wie oft Eigenschaften oder Variablen von visuellen Skripts aktualisiert wurden.
- Die Spalten "Senden" und "Bytes " zählen, wie oft Eigenschaften-, Variable- oder Ereignisaktualisierungen über das Netzwerk gesendet wurden. Diese Zahl kann aufgrund von Ratelimitierung niedriger sein als die Updateanzahl und weil redundante Updates möglicherweise gar nicht gesendet werden.
- Die Spalten Recv und Bytes zählen, wie oft Eigenschaften-, Variablen- oder Ereignisaktualisierungen über das Netzwerk von anderen Clients empfangen wurden.
- Die Bytespalten in dieser Tabelle berücksichtigen nicht alle Netzwerk-Overheads und können nur sinnvoll zum Vergleichen zwischen Ausführungen verwendet werden. Die tatsächliche Bandbreitennutzung kann viel höher sein.
In der Tabelle "Die meiste Ausführungszeit " werden alle visuellen Skriptflüsse nach der Zeit aufgelistet, die sie für die Ausführung benötigt haben. Die hervorgehobene Zeile mit der Bezeichnung [alle] zeigt kumulative Daten über alle Zeilen hinweg an, einschließlich Zeilen, die derzeit nicht angezeigt werden. Klicken Sie auf " Weitere Zeilen anzeigen", um weitere Zeilen anzuzeigen.
- Die Spalte "Anzahl" zählt, wie oft dieser Skriptfluss ausgeführt wurde.
- In der Spalte "Mittelwert " werden die durchschnittlichen Zeitkosten pro Frame (in Millisekunden) dieses Skriptflusses angezeigt.
- In der Spalte "Ereignis " wird der Ereignisknoten benannt, der den Skriptfluss ausgelöst hat.
- Die Zielspalte benennt den Skriptcomputer, der den Skriptfluss ausgeführt hat.
Die am häufigsten verwendeten freigegebenen Updates und die am häufigsten verwendeten freigegebenen Senden sendet Tabellen listen freigegebene Eigenschaften und freigegebene Skriptvariablen, die am häufigsten von visuellen Skripts aktualisiert wurden oder aktualisierungen über das Netzwerk verteilt wurden. Die hervorgehobenen Zeilen mit der Bezeichnung [alle] zeigen kumulative Daten über alle Zeilen hinweg an, einschließlich Zeilen, die derzeit nicht angezeigt werden. Klicken Sie auf " Weitere Zeilen anzeigen", um weitere Zeilen anzuzeigen.
- Die Spalte "Anzahl " zählt, wie oft diese freigegebene Eigenschaft oder freigegebene Variable aktualisiert wurde oder eine Aktualisierung über das Netzwerk verteilt wurde.
- Die Spalte "Name" benennt die freigegebene Eigenschaft oder freigegebene Variable.
- Die Zielspalte benennt die Komponente, die die Eigenschaft oder Variable hosten soll.
Drücken Sie STRG+UMSCHALT+F1 ein zweites Mal, um den Netzwerkinformationsbereich zu vergrößern, wodurch der gesamte Transformationspfad der Zielspielobjekte in den oben gezeigten Tabellen angezeigt wird.
Um den Bereich zu schließen: Drücken Sie STRG+UMSCHALT+F1 ein drittes Mal.