
Comment déboguer votre code avec Microsoft Visual Studio 2022
Unity prend en charge une variété d'éditeurs de code, y compris JetBrains Rider, Atom, et Microsoft Visual Studio Code et Visual Studio. Visual Studio est un package intégré qui est installé par défaut avec l'éditeur Unity.
Cet article fournit des conseils pour utiliser l'édition 2022 du débogueur Microsoft Visual Studio, qui vous permet de corriger les bogues dans votre code de manière efficace. Si vous souhaitez en savoir plus sur les conseils de productivité généraux dans Visual Studio, consultez notre article de blog « 10 façons d'accélérer vos flux de travail dans Visual Studio ».

Installation des outils de débogage de Visual Studio 2022
Visual Studio 2022 a un support intégré pour Unity, vous permettant d'écrire et d'éditer facilement des scripts, d'accéder à des fonctionnalités spécifiques à Unity et de déboguer votre code de jeu sans quitter l'IDE. Il fournit des fonctionnalités telles que l'achèvement de code IntelliSense, la coloration syntaxique et les extraits de code, qui vous aident à écrire du code plus rapidement et plus efficacement. De plus, vous disposez d'outils de débogage, y compris la possibilité de définir des points d'arrêt, de parcourir le code, d'inspecter des variables et d'évaluer des expressions à l'exécution.
Visual Studio est disponible en plusieurs versions, y compris une version communautaire gratuite.
Cet article est basé sur l'édition 2022 de Visual Studio. La version 2019 a les mêmes fonctionnalités, mais les captures d'écran seront légèrement différentes. Par défaut, une nouvelle installation de Unity installera la version communautaire de Visual Studio, ainsi qu'une extension appelée Développement de jeux avec Unity qui intègre Visual Studio avec Unity. Si vous ne choisissez pas d'installer Visual Studio, vous pouvez obtenir une copie ici. Des détails sur la configuration de Visual Studio pour travailler avec Unity sont disponibles ici.
Une fois que vous avez installé Visual Studio dans l'éditeur Unity, ouvrez Unity > Préférences > Outils externes, et sélectionnez Visual Studio comme éditeur de script externe.

Attacher le débogueur Visual Studio à Unity
Pour activer le débogage en temps réel du code de votre projet pendant qu'il s'exécute dans l'éditeur, le débogueur Visual Studio doit s'attacher à l'éditeur. Cela permet au débogueur d'accéder et d'interagir avec l'état d'exécution de votre jeu. Passons en revue les étapes pour l'attacher :
Ouvrez le projet Unity que vous souhaitez déboguer.
Dans Unity, allez à Édition > Préférences (Windows) ou Unity > Préférences (macOS), et assurez-vous que Visual Studio est défini comme éditeur de script externe préféré. Si ce n'est pas le cas, sélectionnez-le dans le menu déroulant.
Ouvrez le script souhaité dans Visual Studio en double-cliquant sur le fichier de script dans la vue Projet ou via l'option de menu Assets > Ouvrir le projet C#.
Dans Visual Studio, allez à Déboguer > Attacher le débogueur Unity ou cliquez sur le bouton Attacher à Unity dans la barre d'outils. Une fenêtre s'ouvrira avec une liste des instances Unity disponibles.
Sélectionnez l'instance Unity exécutant votre projet (généralement affichée comme "Unity Editor (nom de votre projet)," et cliquez sur Attacher.
Visual Studio est maintenant connecté à Unity, et vous pouvez commencer à définir des points d'arrêt et à déboguer votre code. Lorsque le jeu s'exécute dans l'éditeur, le débogueur Visual Studio mettra en pause l'exécution aux points d'arrêt, vous permettant d'examiner l'état du jeu et de déboguer votre code, comme indiqué dans la section suivante.
Si c'est votre première session de débogage, vous verrez une fenêtre vous présentant l'option d'activer le débogage pour la session actuelle, ou pour toutes les sessions. Il est recommandé de choisir la première option, "Activer le débogage pour cette session."

Utilisation des points d'arrêt
Un point d'arrêt est un marqueur sur une ligne de code spécifique. Lorsque le débogueur rencontre un point d'arrêt, il arrête l'exécution du programme, vous permettant d'inspecter l'état actuel des variables, des objets et de la pile d'appels. Vous pouvez ensuite parcourir le code ligne par ligne, en observant comment l'état change au fur et à mesure que le programme s'exécute.
Pour définir un point d'arrêt dans Visual Studio, ouvrez le script et cliquez dans la marge gauche de l'éditeur de code à côté de la ligne de code où vous souhaitez interrompre l'exécution. Ou, placez le curseur sur la ligne et appuyez sur F9. Un point rouge apparaîtra, indiquant qu'un point d'arrêt a été défini, comme montré dans l'image en haut.
Maintenant, allez dans l'éditeur Unity et jouez au jeu. Lorsque l'exécution du programme atteint la ligne avec le point d'arrêt, Visual Studio deviendra l'application active au premier plan avec l'exécution du programme suspendue à la ligne du point d'arrêt. À ce stade, vous pouvez utiliser les outils de Visual Studio pour inspecter les variables.
L'option la plus simple est de survoler un objet, une propriété ou une variable simple. Visual Studio ajoutera un panneau superposé (image du bas dans le collage ci-dessus), vous permettant de voir les surcharges d'une fonction, les propriétés d'un objet et les valeurs d'une propriété ou d'une variable.
Si le superposé a une flèche pointant vers la droite, alors cliquer dessus développera le panneau pour offrir plus d'informations sur les valeurs internes des propriétés de l'objet.
Cette capacité à examiner les valeurs dans un programme en cours d'exécution est incroyablement utile.
Une fois que Visual Studio est attaché à Unity, une nouvelle barre d'outils est ajoutée à droite de Déboguer > Attacher à Unity. Les quatre boutons de cette barre d'outils font ce qui suit, de gauche à droite :
- Continuer/Pause Exécution : Si le programme est actuellement en cours d'exécution, une icône de pause s'affichera que vous pouvez cliquer pour suspendre l'exécution. Avec le programme en pause, une icône de flèche droite apparaît, indiquant que l'appuyer reprendra l'exécution du programme.
- Passer au-dessus : Appuyer sur ce bouton exécutera la ligne de code mise en surbrillance et mettra à nouveau en pause à la ligne suivante.
- Entrer dans : Si la ligne de code active inclut une fonction dont le code source fait partie du projet, alors ce bouton permet au développeur d'entrer et de parcourir la fonction et son code.
- Étape Sortir: Cela déplace l'exécution du programme hors de la fonction actuelle.

Points d'arrêt conditionnels
Un point d'arrêt conditionnel est une forme avancée de point d'arrêt qui ne met en pause l'exécution que si une condition spécifiée est remplie. Cela peut être utile lorsque vous souhaitez examiner un scénario spécifique ou lorsqu'un problème se produit uniquement dans certaines conditions.
Si vous faites un clic droit sur le point d'arrêt dans la barre latérale ou dans la fenêtre de point d'arrêt du panneau inférieur, le menu contextuel s'affichera. Choisissez Modifier le point d'arrêt. La boîte de dialogue montrée dans l'image ci-dessus sera affichée.
Plus d'outils de débogage
Dans Visual Studio, la fenêtre de débogage fournit plusieurs fenêtres qui vous aident à inspecter l'état de votre application pendant qu'elle est en pause à un point d'arrêt. Trois fenêtres essentielles pour examiner l'état de votre programme sont Locals, Watch et Call Stack. Les sections suivantes examinent chacune d'elles.

Locaux
La fenêtre Locals affiche les variables locales et leurs valeurs dans la portée actuelle du code en cours d'exécution. Cela inclut les variables déclarées dans la méthode ou le bloc actuel, ainsi que les arguments de méthode. La fenêtre Locals vous permet d'inspecter rapidement les valeurs des variables au point d'arrêt actuel, ce qui peut être utile pour identifier des valeurs incorrectes ou inattendues qui peuvent causer des problèmes dans votre code. N'oubliez pas, si une ligne commence par une flèche pointant vers la droite, elle est extensible, tandis qu'une flèche pointant vers le bas réduira la fenêtre étendue.

Surveiller
La fenêtre Watch vous permet de suivre des variables ou des expressions spécifiques que vous souhaitez surveiller pendant le processus de débogage. Contrairement à la fenêtre Locals, qui montre les variables dans la portée actuelle, la fenêtre Watch vous permet d'ajouter manuellement des variables ou des expressions, quelle que soit leur portée. Cela peut être utile pour suivre l'état de certaines variables tout au long de l'exécution de votre programme ou pour évaluer des expressions en fonction de l'état actuel de votre application.
Entrez le nom d'une variable ou d'un objet dans la portée et un panneau sera ajouté pour vous permettre de l'inspecter. Pour ajouter une surveillance dans Visual Studio, faites un clic droit sur une variable ou une expression dans votre code et sélectionnez Ajouter une surveillance dans le menu contextuel, ou tapez l'expression directement dans la fenêtre Watch.

Pile d'appels
La fenêtre de la pile d'appels affiche la séquence des appels de méthode qui ont conduit au point d'arrêt actuel, vous permettant de suivre le chemin d'exécution de votre programme. Chaque entrée dans la pile d'appels représente un appel de méthode, l'appel le plus récent étant en haut de la liste. En inspectant la pile d'appels, vous pouvez déterminer comment votre code est arrivé au point d'exécution actuel, vous aidant à identifier la cause profonde des problèmes ou des comportements inattendus.
En plus de montrer la séquence des appels de méthode, la fenêtre de la pile d'appels vous permet de naviguer à travers les différents niveaux de la pile. En double-cliquant sur une entrée de la liste, vous pouvez sauter à la ligne de code correspondante dans le fichier source et voir les variables locales et les paramètres de cette méthode. Cela facilite la compréhension du contexte dans lequel une méthode particulière a été appelée et l'analyse du flux de données à travers votre application.

Déboguer une build
Le débogueur de Visual Studio n'est pas seulement utile pour le jeu exécuté dans l'éditeur Unity, mais aussi pour les builds. Vous devez vous assurer que la build inclut les données utilisées par le débogueur. Vous le faites via Fichier > Paramètres de construction, et, dans la fenêtre qui s'affiche, choisissez Build de développement et Débogage de script(voir l'image ci-dessus)
Sélectionnez Déboguer > Attacher le débogueur Unity dans le menu principal pour Windows, ou Déboguer > Attacher au processus dans le menu supérieur pour MacOS.
Choisissez l'instance appelée Unity Player. Maintenant, tous les points d'arrêt, les locaux et les surveillances sont disponibles dans la build de développement.

Plus de ressources pour les créateurs Unity avancés
Prévoyez-vous d'utiliser un autre éditeur de code ? Lisez notre article sur les conseils pour Microsoft Visual Studio Code.
Unity fournit un certain nombre de guides avancés pour aider les développeurs professionnels à optimiser leur code de jeu. Créez un guide de style C# : Écrivez un code plus propre qui évolue compile des conseils d'experts de l'industrie sur la façon de créer un guide de style de code pour aider votre équipe à développer une base de code propre, lisible et évolutive.
Un autre guide populaire auprès de nos utilisateurs est 70+ conseils pour augmenter la productivité avec Unity. Il est rempli de conseils pour gagner du temps afin d'améliorer votre flux de travail agrégé au quotidien avec Unity 2020 LTS, y compris des conseils que même les développeurs expérimentés pourraient avoir manqués.
Trouvez tous les e-books et articles avancés de Unity dans le hub des meilleures pratiques Unity.