Logo Makeyourgame
Accueil Les formations Créer un jeu Les ateliers Les tutoriels Blog Loterie
Logo Makeyourgame
Les formations Les financements Les exercices La certification Unity
Logo Makeyourgame
Mes objectifs Les jeux Les ressources Le glossaire
Logo Makeyourgame
Les tutos Les tutos Youtube

Contrôler ses scripts avec la class Debug : Unity

pictureProfil_KeyKhaarIlyr
Ecrit par KeyKhaarIlyr
Catégorie Unity
Mis à jour le 01/03/2021
Contrôler ses scripts avec la class Debug

Utiliser la classe Debug de l'API Unity pour tracer les erreur et améliorer son code !

9 min Débutant

Qu'est que débugger ?

Débugger ou déboguer, est l'art de traquer un comportement inattendu dans le développement d'un projet.

Indépendemment du langage ou dudit projet, segmenter son code est une phase importe de la vie d'un-e développeur-euse ! Même avec une connaissance importante d'un langage, une part importante du développement est le debuggage.

La classe Debug d'Unity ?

Et oui, Unity étant un outil très formant, il propose à ses utilisateur-trice-s des solutions pour pouvoir tracer les comportements indésirables de nos créations.

Comme le dit le titre de cette section, nous allons traiter de la classe Debug, une classe avec tout un tas de méthodes différentes facilitant l'évolution de vos scripts.

Cette classe étant conséquente, nous n'explorerons pas ensemble toutes les méthodes qu'elle propose, mais nous allons découvrir ensemble celles les plus essentielles ! Si après ce court tutoriel vous êtes curieux d'en savoir plus, vous retrouverez le lien de la documentation officiel à la fin de ce tuto !
Sans plus attendre, passons à la suite !

La méthode "Debug.Log"

La méthode Debug.Log est la méthode la plus connue parmis les débutants. Cette méthode permet d'afficher un simple message arbitraire. Par exemple :

Exemple d'utilisation de la méthode Debug.Log dans un script basic de gestion de saut dans une scène Unity

Ci-dessus vous trouverez un exemple simple de la méthode.

Dans la méthode privée PerformJump, nous vérifions à l'aide d'une condition si la variable isGround (servant à vérifier si notre personnage est en contact avec le sol ou non) est vraie ou fausse. Dans le cas où elle est vraie, nous autorisons le gameObject à décoller du sol pour y effectuer son saut, dans le cas contraire, le gameObject étant déjà en l'air, il lui faudra être en contact avec le sol avant de pouvoir resauter.

En pratique, voici le résultat :

Message de la méthode Debug.Log dans la console d'Unity

Dans le cas où notre personnage arrive à sauter !

Exemple de message affiché par la méthode Debug.Log dans la console Unity

Dans le cas où notre personnage est déjà dans les airs !

Exemple de message affiché par la méthode Debug.Log dans la console d'Unity

Toujours dans le cas où le personnage est déjà dans les airs, nous vérifions si effectivement la position sur l'axe Y est cohérente avec la condition vérifiée. Le sol de mon projet étant fixé à 0.5 sur l'axe Y, c'est cohérent que l'on ne puisse pas sauter en étant à une valeur au dessus.

Les méthodes "Debug.LogWarning" & "Debug.LogError"

Fondamentalement, elles fonctionnent toutes deux comme la méthode Debug.Log, mais le message généré est de type Warning ou Error dépendamment du besoin.

Exemples des messages de type Log, LogWarning et LogError dans la console d'Unity

Selon le besoin et/ou la gravité de ce qui est vérifié au sein d'un script, le type de Log variera pour offrir une identité visuelle efficace.

Encore plus de lisibilité !

Unity n'a pas fini de vous surprendre.
L'API propose également du rich code pour rendre plus efficace la lecture de ses Logs.

Le rich code permet de personnaliser la typographie de les messages introduits dans la console, par exemple :

Exemple de balises de rich code pour les Logs Unity

Si vous êtes familier avec des langages balisés (tels que HTML5 par exemple), cette syntaxe ne vous surprendra pas, pour les autres, ce qui a été ajouté ici sont des balises indiquantes une façon d'afficher le texte.
Donc si vous vous débrouillez en HTML5 ou que vous êtes bon-ne-s en anglais, vous devriez avoir compris que pour la méthode LogWarning nous avons demander au texte d'afficher la partie "Jump" en vert et en gras.
Pour le LogError, nous demansons que "can't jump" soit en rouge et en gras, et enfin, pour le Log simple, nous demandons à ce que la valeur de la position Y soit affichée en gris et en gras.

Exemple de messages personnalisés avec du rich code dans la console d'Unity

Cela peut paraître un peu superflus d'ajouter des couleurs fantaisies dans des messages comme ceux-ci. Et vous auriez tout à fait raison de penser cela, parce que pour le moment, il s'agit d'assez peu d'informations à afficher, des informations assez peu importantes.

Cependant, lorsque vous traiter beaucoup d'opérations, admettons avec une méthode Update ou encore FixedUpdate, gagner en lisibilité grâce à un code couleur est salvateur, donc garder ce petit tips au cas où wink

Des méthodes plus poussées

Couvrir toutes les méthodes de la classe Debug serait assez long pour un tutoriel, donc nous allons terminer ce tutoriel sur une méthode un poil plus élaborée, mais nettement plus intéressante pour des cas plus particuliers.

La méthode Assert permet de vérifier une condition et, dans le cas où elle se révèle être fausse, lance un message d'erreur dans la console.

Exemple d'utilisation de Debug.Assert dans un script Unity

Cette dernière ligne peut s'avéré difficile à comprendre, mais analysons là ensemble.

Cette méthode a pour but permettre à un gameObject d'effectuer un saut. Pour se faire, il faut vérifier si ledit gameObject est au sol ou non.

Jusque là, le code vous le connaissez, cependant, lors du développement du projet dont est tiré ce script, un bug apparaîssait, le gameObject concerné ne sautait plus du tout après un certain temps. Pour comprendre l'intéraction qui provoquait ce dysfonctionnement, la méthode DebugAssert a été très utile, elle offre la possibilité de vérifier une condition, et si celle-ci est fausse, elle déclanche un message d'erreur en console.

Donc dans le cas où le gameObject ne serait pas en contact avec le sol et dans le cas où la position de notre gameObject sur l'axe vertical est égale à 0.5 (la valeur Y qui celle du sol), la console signale une erreur en affichant le message "Jump encountered a problem" (enrichi en rich code).

Exemple de l'erreur soulevée par la méthode Debug.Assert dans la console Unity

La méthode Assert est très puissante pour contrôller certains comportements qui n'ont pas été pensés en amont. Plus nous sommes en capacité de lire les étapes d'un script, plus nous sommes en moyen de le contrôler, de le corriger et de l'améliorer.

Il existe encore d'autres méthodes de la classe Debug, mais vous les retrouverez peut-être dans un prochain tuto !

D'ici là, voici la documentation officielle d'Unity, et je vous souhaite à très bientôt !

-Key Khaar Ilyr

Vues: 1483

Licence:



Validation du Tutoriel

Veuillez vous connecter ou créer un compte pour pouvoir valider ce tutoriel et ainsi gagner de l'expérience (XP) !

Vous aimerez aussi...

Blog et Tutoriels