Unity prend en charge une variété d'éditeurs de code, dont JetBrains Rider, Atom, Microsoft Visual Studio Code et Visual Studio. Visual Studio est un paquetage intégré qui est installé par défaut avec l'éditeur Unity.
Cet article fournit des conseils pour l'utilisation de l'édition 2022 du débogueur de Microsoft Visual Studio, qui vous permet de corriger efficacement les bogues dans votre code. Si vous souhaitez en savoir plus sur les astuces générales de productivité dans Visual Studio, consultez notre article de blog "10 façons d'accélérer vos flux de travail dans Visual Studio".
Visual Studio 2022 intègre la prise en charge de Unity, ce qui vous permet d'écrire et d'éditer facilement des scripts, d'accéder à des fonctionnalités spécifiques à Unity et de déboguer le code de votre jeu sans quitter l'IDE. Il offre des fonctionnalités telles que la complétion de code IntelliSense, la coloration syntaxique et les extraits de code, qui vous aident à écrire du code plus rapidement et plus efficacement. En outre, vous disposez d'outils de débogage, notamment la possibilité de définir des points d'arrêt, de parcourir le code, d'inspecter les variables et d'évaluer les expressions au moment de l'exécution.
Visual Studio est disponible en plusieurs versions, dont une version communautaire gratuite.
Cet article est basé sur l'édition 2022 de Visual Studio. La version 2019 présente les mêmes caractéristiques, mais les captures d'écran diffèrent légèrement. Par défaut, une nouvelle installation de Unity installe la version communautaire de Visual Studio, ainsi qu'une extension appelée Game Development with Unity qui intègre Visual Studio à Unity. Si vous ne choisissez pas d'installer Visual Studio, vous pouvez en obtenir une copie ici. Les détails de la configuration de Visual Studio pour fonctionner avec Unity sont disponibles ici.
Une fois Visual Studio installé dans l'éditeur Unity, ouvrez Unity > Préférences > Outils externes et sélectionnez Visual Studio comme éditeur de script externe.
Pour permettre le débogage en temps réel du code de votre projet lorsqu'il est exécuté dans l'éditeur, le débogueur de Visual Studio doit s'attacher à l'éditeur. Cela permet au débogueur d'accéder à l'état d'exécution de votre jeu et d'interagir avec lui. Voyons les étapes à suivre pour l'attacher :
Ouvrez le projet Unity que vous souhaitez déboguer.
Dans Unity, allez dans Edition > Préférences (Windows) ou Unity > Préférences (macOS), et assurez-vous que Visual Studio est défini comme l'é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 > Open C# Project.
Dans Visual Studio, allez dans Debug > Attach Unity Debugger ou cliquez sur le bouton Attach to Unity dans la barre d'outils. Une fenêtre s'ouvre avec une liste des instances Unity disponibles.
Sélectionnez l'instance Unity qui exécute votre projet (généralement affichée sous la forme "Unity Editor (nom de votre projet)", puis cliquez sur Attach.
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 de Visual Studio interrompt l'exécution à des points d'arrêt, ce qui vous permet d'examiner l'état du jeu et de déboguer votre code, comme le montre la section suivante.
S'il s'agit de votre première session de débogage, une fenêtre vous propose d'activer le débogage pour la session en cours ou pour toutes les sessions. Il est recommandé de choisir la première option, "Activer le débogage pour cette session".
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, ce qui vous permet 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 de l'exécution du programme.
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 dont vous souhaitez interrompre l'exécution. Ou bien, placez le curseur sur la ligne et appuyez sur F9. Un point rouge apparaît, indiquant qu'un point d'arrêt a été défini, comme le montre l'image du haut ci-dessus.
Allez maintenant dans l'éditeur Unity et jouez au jeu. Lorsque l'exécution du programme atteint la ligne contenant le point d'arrêt, Visual Studio devient l'application active au premier plan et l'exécution du programme est interrompue à 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 consiste à survoler un objet, une propriété ou une simple variable. Visual Studio ajoute un panneau de recouvrement (image du bas dans le collage ci-dessus), qui vous permet de visualiser les surcharges d'une fonction, les propriétés d'un objet et les valeurs d'une propriété ou d'une variable.
Si la superposition comporte une flèche pointant vers la droite, un clic sur celle-ci permet d'élargir le panneau et d'obtenir plus d'informations sur les valeurs internes des propriétés de l'objet.
Cette possibilité d'examiner les valeurs d'un programme en cours d'exécution est extrêmement utile.
Une fois Visual Studio attaché à Unity, une nouvelle barre d'outils est ajoutée à droite de Debug > Attach to Unity. Les quatre boutons de cette barre d'outils permettent d'effectuer les opérations suivantes, de gauche à droite :
- Poursuite/Pause de l'exécution: Si le programme est en cours de lecture, une icône de pause s'affiche sur laquelle vous pouvez cliquer pour interrompre l'exécution. Lorsque le programme est en pause, une icône représentant une flèche vers la droite apparaît, indiquant qu'une pression sur la touche permet de reprendre l'exécution du programme.
- Passer à l'étape suivante: En appuyant sur ce bouton, la ligne de code en surbrillance est exécutée et une nouvelle pause est effectuée à la ligne suivante.
- Entrez dans le monde: Si la ligne de code active comprend une fonction dont le code source fait partie du projet, ce bouton permet au développeur d'accéder à la fonction et à son code.
- Sortir: L'exécution du programme sort ainsi de la fonction en cours.
Un point d'arrêt conditionnel est une forme avancée de point d'arrêt qui n'interrompt l'exécution que si une condition spécifiée est remplie. Cela peut s'avérer utile lorsque vous souhaitez étudier un scénario spécifique ou lorsqu'un problème ne se produit que dans certaines conditions.
Si vous cliquez avec le bouton droit de la souris 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'affiche. Sélectionnez Traiter point d'arrêt. La boîte de dialogue illustrée dans l'image ci-dessus s'affiche.
Plus d'outils de débogage
Dans Visual Studio, la fenêtre de débogage comporte plusieurs fenêtres qui vous permettent d'inspecter l'état de votre application lorsqu'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'entre elles.
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 en cours, ainsi que les arguments de la méthode. La fenêtre Locals vous permet d'inspecter rapidement les valeurs des variables au point d'arrêt actuel, ce qui peut s'avérer utile pour identifier des valeurs incorrectes ou inattendues susceptibles de causer des problèmes dans votre code. Rappelez-vous que 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étrécit la fenêtre extensible.
La fenêtre de surveillance vous permet de garder trace de variables ou d'expressions spécifiques que vous souhaitez surveiller pendant le processus de débogage. Contrairement à la fenêtre Locals, qui affiche les variables dans la portée courante, 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 basées sur l'état actuel de votre application.
Saisissez 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, cliquez avec le bouton droit de la souris sur une variable ou une expression de votre code et sélectionnez Ajouter une surveillance dans le menu contextuel, ou saisissez l'expression directement dans la fenêtre Surveillance.
La fenêtre Pile d'appels affiche la séquence des appels de méthode qui ont conduit au point d'arrêt actuel, ce qui vous permet de suivre le chemin d'exécution de votre programme. Chaque entrée de la pile d'appels représente un appel de méthode, l'appel le plus récent étant placé en tête de liste. En inspectant la pile d'appels, vous pouvez déterminer comment votre code est arrivé au point d'exécution actuel, ce qui vous aide à identifier la cause première des problèmes ou des comportements inattendus.
Outre l'affichage de la séquence des appels de méthode, la fenêtre Pile d'appels permet de naviguer entre les différents niveaux de la pile. En double-cliquant sur une entrée de la liste, vous pouvez passer à la ligne de code correspondante dans le fichier source et afficher les variables locales et les paramètres de cette méthode. Il est ainsi plus facile de comprendre le contexte dans lequel une méthode particulière a été appelée et d'analyser le flux de données dans votre application.
Le débogueur de Visual Studio n'est pas seulement utile pour le jeu qui s'exécute dans l'éditeur Unity, mais aussi pour les constructions. Vous devrez vous assurer que la compilation inclut les données utilisées par le débogueur. Pour ce faire, cliquez sur Fichier > Paramètres de construction et, dans la fenêtre qui s'affiche, choisissez Construction de développement et Débogage de script (voir l'image ci-dessus).
Sélectionnez Debug > Attach Unity Debugger dans le menu principal pour Windows, ou Debug > Attach to Process dans le menu supérieur pour MacOS.
Choisissez l'instance appelée Unity Player. Désormais, tous les points d'arrêt, les locaux et les montres sont disponibles dans la version de développement.
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 le code de leurs jeux. Créer un guide de style C# : Write cleaner code that scales compile les 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+ astuces pour augmenter la productivité avec Unity. Il regorge d'astuces qui vous permettront de gagner du temps et d'améliorer votre flux de travail quotidien avec Unity 2020 LTS, y compris des astuces que même les développeurs expérimentés n'ont pas forcément remarquées.
Retrouvez tous les e-books et articles avancés d'Unity dans le hub des meilleures pratiques d'Unity.