Hero background image
So debuggen Sie Ihren Code mit Microsoft Visual Studio 2022

Unity unterstützt eine Vielzahl von Code-Editoren, darunter JetBrains Rider, Atomund Microsoft Visual Studio Code und Visual Studio. Visual Studio ist ein integriertes Paket, das standardmäßig mit dem Unity Editor installiert wird.

Dieser Artikel enthält Tipps zur Verwendung der Edition 2022 des Microsoft Visual Studio-Debuggers, mit dem Sie Fehler in Ihrem Code effizient beheben können. Wenn Sie mehr über allgemeine Produktivitätstipps in Visual Studio erfahren möchten, lesen Sie unseren Blogbeitrag „10 Möglichkeiten zur Beschleunigung Ihrer Arbeitsabläufe in Visual Studio“.

VisualStudio
Installieren von Visual Studio 2022-Debuggingtools

Visual Studio 2022 verfügt über integrierte Unterstützung für Unity, sodass Sie problemlos Skripts schreiben und bearbeiten, auf Unity-spezifische Funktionen zugreifen und Ihren Spielcode debuggen können, ohne die IDE zu verlassen. Es bietet Funktionen wie IntelliSense-Codevervollständigung, Syntaxhervorhebung und Codeausschnitte, mit denen Sie Code schneller und effizienter schreiben können. Darüber hinaus erhalten Sie Debugging-Tools, einschließlich der Möglichkeit, Haltepunkte zu setzen, Code schrittweise durchzugehen, Variablen zu prüfen und Ausdrücke zur Laufzeit auszuwerten.

Visual Studio ist in mehreren Versionen verfügbar, einschließlich einer kostenlosen Community-Version.

Dieser Artikel basiert auf der Edition 2022 von Visual Studio. Die Version 2019 verfügt über dieselben Funktionen, die Screenshots unterscheiden sich jedoch ein wenig. Standardmäßig wird bei einer Neuinstallation von Unity die Community-Version von Visual Studio zusammen mit einer Erweiterung namens „Game Development with Unity“ installiert, die Visual Studio in Unity integriert. Wenn Sie Visual Studio nicht installieren möchten, können Sie hiereine Kopie erhalten. Einzelheiten zum Einrichten von Visual Studio für die Arbeit mit Unity finden Sie hier.

Nachdem Sie Visual Studio im Unity-Editor installiert haben, öffnen Sie Unity > Einstellungen > Externe Toolsund wählen Sie Visual Studio als externen Skript-Editor aus.

Anhängen des Debuggers an Unity
Anhängen des Visual Studio-Debuggers an Unity

Um das Echtzeit-Debuggen des Codes Ihres Projekts während der Ausführung im Editor zu ermöglichen, muss sich der Visual Studio-Debugger an den Editor anhängen. Dadurch kann der Debugger auf den Laufzeitstatus Ihres Spiels zugreifen und mit diesem interagieren. Lassen Sie uns die Schritte zum Anhängen durchgehen:

Öffnen Sie das Unity-Projekt, das Sie debuggen möchten.

Gehen Sie in Unity zu Bearbeiten > Einstellungen (Windows) oder Unity > Einstellungen (macOS) und stellen Sie sicher, dass Visual Studio als bevorzugter externer Skript-Editor festgelegt ist. Wenn nicht, wählen Sie es aus dem Dropdown-Menü aus.

Öffnen Sie das gewünschte Skript in Visual Studio durch einen Doppelklick auf die Skriptdatei in der Projektansicht oder über die Menüoption „Assets > C#-Projekt öffnen“ .

Gehen Sie in Visual Studio zu Debuggen > Unity-Debugger anhängen oder klicken Sie in der Symbolleiste auf die Schaltfläche An Unity anhängen . Es öffnet sich ein Fenster mit einer Liste der verfügbaren Unity-Instanzen.

Wählen Sie die Unity-Instanz aus, auf der Ihr Projekt ausgeführt wird (normalerweise angezeigt als „Unity Editor (Ihr Projektname)“), und klicken Sie auf „Anhängen“.

Visual Studio ist jetzt mit Unity verbunden und Sie können mit dem Setzen von Haltepunkten und dem Debuggen Ihres Codes beginnen. Wenn das Spiel im Editor ausgeführt wird, unterbricht der Visual Studio-Debugger die Ausführung an Haltepunkten, sodass Sie den Spielstatus untersuchen und Ihren Code debuggen können, wie im nächsten Abschnitt gezeigt.

Wenn dies Ihre erste Debugsitzung ist, wird ein Fenster mit der Option angezeigt, das Debuggen für die aktuelle Sitzung oder für alle Sitzungen zu aktivieren. Es wird empfohlen, Ersteres zu wählen: „Debuggen für diese Sitzung aktivieren.“

VisualStudio
Verwenden von Haltepunkten

Ein Haltepunkt ist eine Markierung auf einer bestimmten Codezeile. Wenn der Debugger auf einen Haltepunkt stößt, stoppt er die Programmausführung und ermöglicht Ihnen, den aktuellen Status der Variablen, Objekte und des Aufrufstapels zu überprüfen. Sie können den Code dann Zeile für Zeile durchgehen und beobachten, wie sich der Status während der Ausführung des Programms ändert.

Um einen Haltepunkt in Visual Studio festzulegen, öffnen Sie das Skript und klicken Sie in den linken Rand des Code-Editors neben der Codezeile, bei der Sie die Ausführung anhalten möchten. Oder platzieren Sie den Cursor auf der Zeile und drücken Sie F9. Ein roter Punkt wird angezeigt und zeigt an, dass ein Haltepunkt gesetzt wurde, wie im oberen Bild oben gezeigt.

Gehen Sie jetzt zum Unity Editor und spielen Sie das Spiel. Wenn die Programmausführung die Zeile mit dem Haltepunkt erreicht, wird Visual Studio zur aktiven Vordergrundanwendung, wobei die Programmausführung an der Haltepunktzeile angehalten wird. An diesem Punkt können Sie Visual Studio-Tools verwenden, um Variablen zu überprüfen.

Die einfachste Möglichkeit besteht darin, den Mauszeiger über ein Objekt, eine Eigenschaft oder eine einfache Variable zu bewegen. Visual Studio fügt ein Overlay-Panel hinzu (unteres Bild in der Collage oben), mit dem Sie die Überladungen einer Funktion, die Eigenschaften eines Objekts und die Werte einer Eigenschaft oder Variable anzeigen können.

Wenn die Überlagerung über einen nach rechts zeigenden Pfeil verfügt, wird durch Klicken auf diesen das Fenster erweitert, um mehr Einblick in die internen Werte der Eigenschaften des Objekts zu erhalten.

Diese Möglichkeit, Werte in einem laufenden Programm zu untersuchen, ist unglaublich nützlich.

Sobald Visual Studio an Unity angehängt ist, wird rechts neben Debuggen > An Unity anhängeneine neue Symbolleiste hinzugefügt. Die vier Schaltflächen in dieser Symbolleiste haben von links nach rechts folgende Funktionen:

  • Ausführung fortsetzen/anhalten: Wenn das Programm aktuell abgespielt wird, wird ein Pausensymbol angezeigt, auf das Sie klicken können, um die Ausführung anzuhalten. Wenn das Programm angehalten ist, wird ein Rechtspfeilsymbol angezeigt, das angibt, dass durch Drücken die Programmausführung fortgesetzt wird.
  • Schritt über: Durch Drücken dieser Schaltfläche wird die markierte Codezeile ausgeführt und bei der nächsten Zeile erneut angehalten.
  • Hineinsteigen: Wenn die aktive Codezeile eine Funktion enthält, deren Quellcode Teil des Projekts ist, kann der Entwickler mit dieser Schaltfläche in die Funktion und ihren Code einsteigen und diese durchlaufen.
  • Aussteigen: Dadurch wird die Programmausführung aus der aktuellen Funktion verschoben.
VisualStudio
Bedingte Haltepunkte

Ein bedingter Haltepunkt ist eine erweiterte Form eines Haltepunkts, der die Ausführung nur unterbricht, wenn eine angegebene Bedingung erfüllt ist. Dies kann nützlich sein, wenn Sie ein bestimmtes Szenario untersuchen möchten oder wenn ein Problem nur unter bestimmten Bedingungen auftritt.

Wenn Sie mit der rechten Maustaste auf den Haltepunkt in der Seitenleiste oder im Haltepunktfenster im unteren Bereich klicken, wird das Kontextmenü angezeigt. Wählen Sie „Haltepunkt bearbeiten“. Das im Bild oben dargestellte Dialogfeld wird angezeigt.

Weitere Debug-Tools

In Visual Studio bietet das Debuggerfenster mehrere Fenster, mit deren Hilfe Sie den Status Ihrer Anwendung überprüfen können, während diese an einem Haltepunkt angehalten ist. Drei wichtige Fenster zur Überprüfung des Status Ihres Programms sind „Locals“, „Watch“ und „Call Stack“. In den folgenden Abschnitten wird auf jeden einzelnen eingegangen.

VisualStudio
Einheimische

Das Fenster „Lokale Variablen“ zeigt die lokalen Variablen und ihre Werte im aktuellen Bereich des ausgeführten Codes an. Hierzu gehören Variablen, die innerhalb der aktuellen Methode oder des aktuellen Blocks deklariert sind, sowie Methodenargumente. Im Fenster „Lokal“ können Sie schnell die Werte der Variablen am aktuellen Haltepunkt überprüfen. Dies kann hilfreich sein, um falsche oder unerwartete Werte zu identifizieren, die möglicherweise Probleme in Ihrem Code verursachen. Denken Sie daran: Wenn eine Zeile mit einem nach rechts zeigenden Pfeil beginnt, ist sie erweiterbar, während ein nach unten zeigender Pfeil das erweiterte Fenster verkleinert.

The Watch-Fenster
Ansehen

Im Überwachungsfenster können Sie bestimmte Variablen oder Ausdrücke verfolgen, die Sie während des Debugvorgangs überwachen möchten. Im Gegensatz zum Fenster „Lokal“, in dem Variablen im aktuellen Bereich angezeigt werden, können Sie im Fenster „Überwachen“ Variablen oder Ausdrücke unabhängig von ihrem Bereich manuell hinzufügen. Dies kann nützlich sein, um den Status bestimmter Variablen während der Ausführung Ihres Programms zu verfolgen oder um Ausdrücke basierend auf dem aktuellen Status Ihrer Anwendung auszuwerten.

Geben Sie den Namen einer Variablen oder eines Objekts im Gültigkeitsbereich ein. Anschließend wird ein Fenster hinzugefügt, in dem Sie es überprüfen können. Um eine Überwachung in Visual Studio hinzuzufügen, klicken Sie mit der rechten Maustaste auf eine Variable oder einen Ausdruck in Ihrem Code und wählen Sie im Kontextmenü „Überwachung hinzufügen“ aus, oder geben Sie den Ausdruck direkt in das Überwachungsfenster ein.

Das Aufrufstapel-Fenster
Aufrufliste

Im Fenster „Aufrufstapel“ wird die Abfolge der Methodenaufrufe angezeigt, die zum aktuellen Haltepunkt geführt haben, sodass Sie den Ausführungspfad Ihres Programms verfolgen können. Jeder Eintrag im Aufrufstapel stellt einen Methodenaufruf dar, wobei der aktuellste Aufruf oben in der Liste steht. Durch die Überprüfung des Aufrufstapels können Sie bestimmen, wie Ihr Code zum aktuellen Ausführungspunkt gelangt ist. Dies hilft Ihnen dabei, die Grundursache von Problemen oder unerwartetem Verhalten zu ermitteln.

Das Fenster „Aufrufstapel“ zeigt nicht nur die Abfolge der Methodenaufrufe an, sondern ermöglicht Ihnen auch die Navigation durch die verschiedenen Ebenen des Stapels. Durch Doppelklicken auf einen Eintrag in der Liste können Sie zur entsprechenden Codezeile in der Quelldatei springen und die lokalen Variablen und Parameter für diese Methode anzeigen. Dadurch lässt sich der Kontext, in dem eine bestimmte Methode aufgerufen wurde, leichter verstehen und der Datenfluss durch Ihre Anwendung analysieren.

Build-Einstellungen
Debuggen eines Builds

Der Visual Studio-Debugger ist nicht nur für das im Unity Editor ausgeführte Spiel nützlich, sondern auch für Builds. Sie müssen sicherstellen, dass der Build die vom Debugger verwendeten Daten enthält. Dies geschieht über Datei > Build-Einstellungenund im angezeigten Fenster wählen Sie Entwicklungsbuild und Skriptdebugging (siehe Abbildung oben).

Wählen Sie „Debuggen“ > „Unity-Debugger anhängen“ aus dem Hauptmenü für Windows oder „Debuggen“ > „An Prozess anhängen“ aus dem oberen Menü für MacOS.

Wählen Sie die Instanz mit dem Namen „Unity Player“. Jetzt sind alle Haltepunkte, lokalen Variablen und Überwachungen im Entwicklungsbuild verfügbar.

Schreiben Sie sauberen Code
Weitere Ressourcen für fortgeschrittene Unity-Entwickler

Planen Sie, einen anderen Code-Editor zu verwenden? Lesen Sie unseren Artikel mit Tipps zu Microsoft Visual Studio Code.

Unity bietet eine Reihe erweiterter Anleitungen, die professionellen Entwicklern bei der Optimierung ihres Spielcodes helfen. Erstellen Sie einen C#-Styleguide: Schreiben Sie saubereren Code, der skalierbar ist stellt Ratschläge von Branchenexperten zum Erstellen eines Code-Styleguides zusammen, der Ihrem Team dabei hilft, eine saubere, lesbare und skalierbare Codebasis zu entwickeln.

Ein weiterer bei unseren Benutzern beliebter Leitfaden sind „Über 70 Tipps zur Steigerung der Produktivität mit Unity“. Es enthält zahlreiche zeitsparende Tipps zur Verbesserung Ihres täglichen aggregierten Workflows mit Unity 2020 LTS, darunter auch Tipps, die selbst erfahrenen Entwicklern möglicherweise entgangen sind.

Alle fortgeschrittenen E-Books und Artikel von Unity finden Sie im Best Practices-Hub von Unity.

Haben Ihnen diese Inhalte gefallen?