11 astuces sur l'inspecteur pour BOOSTER votre productivité avec Unity

Inspecteur : plus de 10 astuces pour bosser plus vite avec Unity

L’inspecteur, c’est probablement l’un des outils de Unity sur lequel vous allez passer le plus de temps, alors autant le rentabiliser non ?

Lorsqu’on apprend à se servir de Unity sur le tas, on y va de manière assez empirique. On applique ce qu’on a vu à droite et à gauche sans avoir de vraie ligne directrice.

Le problème, c’est qu’on se retrouve à utiliser des outils d’une manière qui n’est pas optimale. Pour vous donner une image, c’est comme de conduire une voiture et de rester en première parce qu’on vous a jamais expliqué qu’il y a d’autres vitesses !

Avouez que c’est quand même dommage. Surtout que Unity en a sous la capot…

Voilà donc non pas 10 mais 11 astuces à savoir sur l’inspecteur pour vous faire gagner du temps casser le plafond de votre productivité.

Les astuces sont présentées dans les deux vidéos ci-dessous, mais si vous préférez le texte, le détail est juste en dessous :


Astuces depuis l’inspecteur

Astuce #1

L’inspecteur se met automatiquement à jour dès que vous sélectionnez un élément. C’est son fonctionnement de base. Le cadenas vous permet de verrouiller l’inspecteur sur l’élément sélectionné.

Astuce du cadenas dans l'inspecteur de Unity

De cette manière, même si vous sélectionnez autre chose, l’inspecteur affichera toujours la même chose. C’est utile dans plein de cas : garder le paramétrage de vos PlayerSettings toujours accessible, drag’n’drop plusieurs éléments dans un tableau de l’inspecteur, etc.

Astuce #2

Le moteur évolue vite. Des choses sont ajoutées, d’autres retirées. De ce fait, on se retrouve régulièrement à ne pas ou ne plus savoir comment utiliser certains composants. Dans ce cas, la première chose à faire est de se tourner vers la documentation. L’inspecteur propose un raccourcis pour accéder directement à la documentation du composant en cours via cette petite icone en forme de livre :

Astuce de la documentation dans l'inspecteur de Unity

A utiliser sans modération !

Astuce #3

L’inspecteur n’affiche pas toutes les données des scripts. Si vous avez un inspecteur personnalisé, c’est encore plus restreint. Mais dans certains cas, il peut être utile de vérifier d’un coup d’oeil des variables privées par exemple. C’est possible en activant le mode debug de l’inspecteur via ce menu :

Astuce du mode debug dans Unity

Vous pourrez alors voir tout ce qui se passe derrière le rideau, sans pour autant toucher à vos scripts !

Astuce #4

L’organisation, c’est super important pour bosser efficacement. Quoi de pire qu’un GameObject avec plein de scripts, un Rigidbody au milieu et un collider à la fin ? Vous pouvez ordonner les composants d’un GameObject pour y voir plus clair de deux manières :

  • Soit via le menu contextuel roue dentée
  • Soit via du drag’n’drop
Ca coûte pas grand chose à faire, mais ça peut faciliter le travail une fois que tout est bien rangé.

Astuce #5

Cette astuce vaut son pesant de cacahuètes. L’inspecteur permet de changer les valeurs alors que le jeu est en test dans l’éditeur. C’est génial pour faire des ajustements. Mais une fois le mode play arrêté, tout retourne à son état de départ. Pour ne pas perdre votre paramétrage durement affiné, vous pouvez copier les valeurs d’un composant pour les recoller ensuite ! Tout ça se passe via le menu contextuel roue dentée.

Astuce #6

Dans le rush ou si vous êtes fatigué, il peut arriver d’ajouter des composants sur un GameObject, de tout paramétrer et de se rendre compte ensuite que… c’était pas le bon ! Mais pas de panique. Il est possible de déplacer des composants d’un GameObject à un autre en faisant du drag’n’drop.

Attention : cela ne fonctionne qu’avec les scripts (testé en 2018.1).

Astuces de scripting et de personnalisation

Astuce #7

Lorsque vous créez vos scripts, il est fort probable que vous ayez besoin d’initialiser des valeurs ou de faire des actions bien particulières. Vous pouvez exposer dans l’inspecteur des fonction derrières un menu contextuel sans pour autant avoir besoin de créer un inspecteur personnalisé. C’est exactement ce que propose l’attribut [ContextMenu] :

Astuce du menu contextuel dans l'inspecteur de Unity

[ContextMenu("Votre propre item de menu")]
public void MyCustomMethod()
{

}

Votre élément de menu va apparaître dans le menu de la roue dentée.

Astuce #8

Cette astuce va de paire avec la précédente. Au lieu de lieu d’apparaître dans la roue dentée, ce menu est directement sur la variable dans l’inspecteur. L’attribut à utiliser dans ce cas est [ContextMenuItem]. Voilà le résultat :

Astuce du menu contextuel sur une propriété dans l'inspecteur de Unity

[ContextMenuItem("Set Main Camera", "SetMainCamera")]
public Camera mainCamera;

public void SetMainCamera()
{

}

Pour en savoir plus sur différentes façons de créer des menus personnalisés dans l’éditeur, lisez cet article qui détaille comment faire.

Astuce #9

Dans l’inspecteur, vous allez gérer plein de variables pour vos scripts. Comme des nombres. Or il n’y a rien de plus consommateur en temps que de devoir sélectionner le champ, puis taper au clavier. C’est encore plus consommateur quand vous tatonnez pour trouver une valeur qui va bien ! Dans ce cas, vous pouvez utiliser l’attribut [Range] qui va vous transformer une variable numérique en un slider dans l’inspecteur. Un coup de clic et vous pouvez tester :

Astuce du champ de type slider dans l'inspecteur de Unity

[Range(0, 50)]
public float PlayerStrength;

Astuce #10

L’inspecteur affiche par défaut toutes les variables publiques de vos scripts. Et inversement, les variables privées sont masquées. Tout mettre en visibilité publique n’est pas une bonne chose car vous ne voulez pas forcément rendre toutes les variables accessibles par script. Dans ce cas, mettez vos variables en privé et utilisez l’attribut [SerializeField]. Elles apparaitront dans l’inspecteur !

[SerializeField]
private float PlayerStrength; // La variable est privée mais sera affichée dans l'inspecteur

Astuce #11

S’il est possible d’afficher une variable privée dans l’inspecteur, il est aussi possible de masquer une variable publique de celui-ci. Le contre exemple est une variable qui est sensée être modifiée par un autre script mais qu’un n’a aucun intérêt à être dans l’inspecteur. Dans ce cas, il faut utiliser l’attribut [HideInInspector].

[HideInInspector]
public float PlayerStrength; // La variable est publique mais sera masquée dans l'inspecteur

 

Conseil : De manière générale, n’affichez dans l’inspecteur QUE les variables qui ont du sens. Démarrez toujours par créer vos variables de script en visibilité privée. Ajoutez l’attribut de sérialisation uniquement si nécessaire. Si vous avez vraiment besoin d’y accéder depuis un autre script, passez-les en visibilité publique et servez-vous de HideInInspector.

 

Travailler plus efficacement, pour finir son jeu plus vite

Voilà. Si vous apprenez et appliquez ne serait-ce que quelques unes de ces astuces, je vous garantis que vous allez économiser un temps fou. Quelques secondes de gagnées sur des actions effectuées plusieurs dizaines de fois par jour, voire centaines de fois, c’est énorme ! C’est autant de temps que vous pourrez passer à avancer votre jeu !

Vous connaissez d’autres astuces ? Partagez-les dans les commentaires et expliquez pourquoi elle vous ont fait gagner du temps / facilité la vie.

Si ce n’est pas déjà fait, abonnez-vous à la chaine Youtube d’Esprit Unity et ne ratez aucune des prochaines vidéos.

Happy Gamedev.

 

>