
So debuggen Sie Ihren Code mit Microsoft Visual Studio 2022
Unity unterstützt eine Vielzahl von Code-Editoren, einschließlich JetBrains Rider, Atom und Microsoft Visual Studio Code und Visual Studio. Visual Studio ist ein integriertes Paket, das standardmäßig mit dem Unity-Editor installiert wird.
Dieser Artikel bietet Tipps zur Verwendung des Debuggers von Microsoft Visual Studio 2022, 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, um Ihre Arbeitsabläufe in Visual Studio zu beschleunigen.“

Installation der Debugging-Tools von Visual Studio 2022
Visual Studio 2022 bietet integrierte Unterstützung für Unity, sodass Sie Skripte einfach 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 Code-Snippets, die Ihnen helfen, schneller und effizienter zu programmieren. Darüber hinaus erhalten Sie Debugging-Tools, einschließlich der Möglichkeit, Haltepunkte zu setzen, durch den Code zu schrittweise zu gehen, Variablen zu inspizieren und Ausdrücke zur Laufzeit zu bewerten.
Visual Studio ist in mehreren Versionen erhältlich, einschließlich einer kostenlosen Community-Version.
Dieser Artikel basiert auf der 2022er Ausgabe von Visual Studio. Die 2019-Version hat die gleichen Funktionen, aber die Screenshots werden sich ein wenig unterscheiden. Standardmäßig installiert eine neue Installation von Unity die Community-Version von Visual Studio zusammen mit einer Erweiterung namens Game Development with Unity, die Visual Studio mit Unity integriert. Wenn Sie sich entscheiden, Visual Studio nicht zu installieren, können Sie eine Kopie hier erhalten. Details zur Einrichtung von Visual Studio zur Zusammenarbeit mit Unity finden Sie hier.
Nachdem Sie Visual Studio im Unity-Editor installiert haben, öffnen Sie Unity > Einstellungen > externe Tools und wählen Sie Visual Studio als externen Skripteditor aus.

Anschließen des Visual Studio-Debuggers an Unity
Um das Echtzeit-Debugging des Codes Ihres Projekts zu ermöglichen, während es im Editor läuft, muss sich der Visual Studio-Debugger mit dem Editor verbinden. Dies ermöglicht es dem Debugger, auf den Laufzeitstatus Ihres Spiels zuzugreifen und mit ihm zu interagieren. Lassen Sie uns die Schritte durchgehen, um ihn anzuhängen:
Ö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 Skripteditor festgelegt ist. Wenn nicht, wählen Sie es aus dem Dropdown-Menü aus.
Öffnen Sie das gewünschte Skript in Visual Studio, indem Sie doppelt auf die Skriptdatei im Projektansicht klicken oder über die Assets > C#-Projekt öffnen Menüoption.
Gehen Sie in Visual Studio zu Debuggen > Unity-Debugger anhängen oder klicken Sie auf die An Unity anhängen Schaltfläche in der Symbolleiste. Ein Fenster öffnet sich mit einer Liste der verfügbaren Unity-Instanzen.
Wählen Sie die Unity-Instanz aus, die Ihr Projekt ausführt (normalerweise als „Unity Editor (Ihr Projektname)“ angezeigt), und klicken Sie auf Anhängen.
Visual Studio ist jetzt mit Unity verbunden, und Sie können beginnen, Haltepunkte zu setzen und Ihren Code zu debuggen. Wenn das Spiel im Editor läuft, pausiert der Visual Studio-Debugger die Ausführung an Haltepunkten, sodass Sie den Spielstatus überprüfen und Ihren Code debuggen können, wie im nächsten Abschnitt gezeigt.
Wenn dies Ihre erste Debugging-Sitzung ist, sehen Sie ein Fenster, das Ihnen die Option bietet, das Debugging für die aktuelle Sitzung oder für alle Sitzungen zu aktivieren. Es wird empfohlen, die erste Option zu wählen: „Debugging für diese Sitzung aktivieren.“

Verwendung von Haltepunkten
Ein Haltepunkt ist ein Marker auf einer bestimmten Codezeile. Wenn der Debugger auf einen Haltepunkt trifft, stoppt er die Ausführung des Programms, sodass Sie den aktuellen Zustand von Variablen, Objekten und dem Aufrufstapel überprüfen können. Sie können dann den Code Zeile für Zeile durchgehen und beobachten, wie sich der Zustand ändert, während das Programm läuft.
Um einen Haltepunkt in Visual Studio zu setzen, öffnen Sie das Skript und klicken Sie in den linken Rand des Code-Editors neben der Zeile, in der Sie die Ausführung anhalten möchten. Oder platzieren Sie den Cursor auf der Zeile und drücken Sie F9. Ein roter Punkt erscheint, der anzeigt, dass ein Haltepunkt gesetzt wurde, wie im oberen Bild 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 Anwendung im Vordergrund, und die Programmausführung wird an der Haltepunktzeile angehalten. An diesem Punkt können Sie die Werkzeuge von Visual Studio verwenden, um Variablen zu inspizieren.
Die einfachste Option besteht darin, über ein Objekt, eine Eigenschaft oder eine einfache Variable zu fahren. Visual Studio fügt ein Überlagerungsfenster hinzu (unteres Bild in der obigen Collage), das Ihnen ermöglicht, die Überladungen einer Funktion, die Eigenschaften eines Objekts und die Werte einer Eigenschaft oder Variablen anzuzeigen.
Wenn die Überlagerung einen nach rechts zeigenden Pfeil hat, wird durch Klicken darauf das Fenster erweitert, um mehr Einblick in die internen Werte der Eigenschaften des Objekts zu bieten.
Diese Fähigkeit, Werte in einem laufenden Programm zu untersuchen, ist unglaublich nützlich.
Sobald Visual Studio mit Unity verbunden ist, wird eine neue Symbolleiste rechts von Debug > An Unity anhängen hinzugefügt. Die vier Schaltflächen in dieser Symbolleiste tun Folgendes, von links nach rechts:
- Fortsetzen/Pause Ausführung: Wenn das Programm gerade läuft, wird ein Pausensymbol angezeigt, das Sie anklicken können, um die Ausführung zu pausieren. Mit dem angehaltenen Programm erscheint ein nach rechts zeigendes Pfeilsymbol, das anzeigt, dass das Drücken die Programmausführung fortsetzt.
- Übergehen: Durch Drücken dieser Schaltfläche wird die hervorgehobene Codezeile ausgeführt und erneut an der nächsten Zeile angehalten.
- In den Code eintreten: Wenn die aktive Codezeile eine Funktion enthält, bei der der Quellcode Teil des Projekts ist, ermöglicht dieser Button dem Entwickler, in die Funktion und ihren Code einzutreten und durch sie hindurchzugehen.
- Schritt heraus: Dies bewegt die Programmausführung aus der aktuellen Funktion heraus.

Bedingte Haltepunkte
Ein bedingter Haltepunkt ist eine erweiterte Form des Haltepunkts, die die Ausführung nur pausiert, wenn eine bestimmte 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 unteren Panel des Haltepunktfensters klicken, wird das Kontextmenü angezeigt. Wählen Sie Haltepunkt bearbeiten. Das im obigen Bild gezeigte Dialogfeld wird angezeigt.
Weitere Debugging-Tools
In Visual Studio bietet das Debuggerfenster mehrere Fenster, die Ihnen helfen, den Zustand Ihrer Anwendung zu inspizieren, während sie an einem Haltepunkt pausiert ist. Drei wesentliche Fenster zur Untersuchung des Zustands Ihres Programms sind Lokale, Überwachen und Aufrufstapel. Die folgenden Abschnitte betrachten jedes einzelne.

Lokale Variablen
Das Lokale-Fenster zeigt die lokalen Variablen und deren Werte im aktuellen Gültigkeitsbereich des ausführenden Codes an. Dies umfasst Variablen, die innerhalb der aktuellen Methode oder des Blocks deklariert sind, sowie Methodenargumente. Das Lokale-Fenster ermöglicht es Ihnen, die Werte von Variablen am aktuellen Haltepunkt schnell zu inspizieren, was hilfreich sein kann, um falsche oder unerwartete Werte zu identifizieren, die Probleme in Ihrem Code verursachen könnten. 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.

Überwachen
Das Überwachen-Fenster ermöglicht es Ihnen, bestimmte Variablen oder Ausdrücke zu verfolgen, die Sie während des Debugging-Prozesses überwachen möchten. Im Gegensatz zum Lokale-Fenster, das Variablen im aktuellen Gültigkeitsbereich anzeigt, ermöglicht das Überwachen-Fenster das manuelle Hinzufügen von Variablen oder Ausdrücken, unabhängig von ihrem Gültigkeitsbereich. Dies kann nützlich sein, um den Zustand bestimmter Variablen während der Ausführung Ihres Programms zu verfolgen oder um Ausdrücke basierend auf dem aktuellen Zustand Ihrer Anwendung zu bewerten.
Geben Sie den Namen einer Variablen oder eines Objekts im Gültigkeitsbereich ein, und ein Panel wird hinzugefügt, um es zu inspizieren. Um einen Watch in Visual Studio hinzuzufügen, klicken Sie mit der rechten Maustaste auf eine Variable oder einen Ausdruck in Ihrem Code und wählen Sie Watch hinzufügen aus dem Kontextmenü oder geben Sie den Ausdruck direkt in das Watch-Fenster ein.

Aufrufstapel
Das Call Stack-Fenster zeigt die Reihenfolge der Methodenaufrufe an, die zum aktuellen Haltepunkt geführt haben, sodass Sie den Ausführungsweg Ihres Programms nachverfolgen können. Jeder Eintrag im Call Stack stellt einen Methodenaufruf dar, wobei der zuletzt aufgerufene Aufruf ganz oben in der Liste steht. Durch die Inspektion des Call Stacks können Sie feststellen, wie Ihr Code an den aktuellen Ausführungspunkt gelangt ist, was Ihnen hilft, die Ursache von Problemen oder unerwartetem Verhalten zu identifizieren.
Neben der Anzeige der Reihenfolge der Methodenaufrufe ermöglicht das Call Stack-Fenster auch die Navigation durch die verschiedenen Ebenen des Stacks. 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. Dies erleichtert das Verständnis des Kontexts, in dem eine bestimmte Methode aufgerufen wurde, und die Analyse des Datenflusses durch Ihre Anwendung.

Debugging eines Builds
Der Visual Studio-Debugger ist nicht nur nützlich für das Spiel, das im Unity-Editor läuft, sondern auch für Builds. Sie müssen sicherstellen, dass der Build Daten enthält, die vom Debugger verwendet werden. Sie tun dies über Datei > Build-Einstellungen, und wählen Sie im angezeigten Fenster Entwicklungsbuild und Script-Debugging aus (siehe Bild oben).
Wählen Sie Debug > Unity-Debugger anhängen aus dem Hauptmenü für Windows oder Debug > An Prozess anhängen aus dem oberen Menü für MacOS.
Wählen Sie die Instanz namens Unity Player. Jetzt sind alle Haltepunkte, lokalen Variablen und Watches im Entwicklungsbuild verfügbar.

Weitere Ressourcen für fortgeschrittene Unity-Ersteller
Planen Sie, einen anderen Code-Editor zu verwenden? Lesen Sie unseren Artikel über Tipps für Microsoft Visual Studio Code.
Unity bietet eine Reihe von fortgeschrittenen Leitfäden, um professionellen Entwicklern zu helfen, ihren Spielcode zu optimieren. Erstellen Sie einen C#-Stil-Leitfaden: Schreiben Sie saubereren Code, der skalierbar ist und sammeln Sie Ratschläge von Branchenexperten, wie Sie einen Code-Stil-Leitfaden erstellen können, um Ihrem Team zu helfen, eine saubere, lesbare und skalierbare Codebasis zu entwickeln.
Ein weiterer beliebter Leitfaden bei unseren Nutzern ist 70+ Tipps zur Steigerung der Produktivität mit Unity. Er ist vollgepackt mit zeitsparenden Tipps zur Verbesserung Ihres täglichen aggregierten Workflows mit Unity 2020 LTS, einschließlich Tipps, die selbst erfahrene Entwickler möglicherweise übersehen haben.
Finden Sie alle fortgeschrittenen E-Books und Artikel von Unity im Unity-Best-Practices-Hub.