Mettre en valeur ses GameObjects sur la scène


Lorsque vous travaillez sur une scène avec beaucoup d’éléments, il devient indispensable de savoir les mettre en valeur ses GameObjects.

Le GameObject. Vous savez, cet objet que vous utilisez par paquets de cent dans vos projets. Aujourd’hui nous allons parler de ces petits chéris sans qui rien ne serait possible !

Ils font leur travail, et il le font bien. Mais dès qu’il est question d’avoir beaucoup de GameObjects sur une scène, on peut rapidement les perdre. Un GameObject à son état naturel, c’est un conteneur vide. Il est donc par essence invisible. Et c’est bien là le problème.

Lorsque vous travaillez sur une scène et que vous avez besoin de sélectionner un GameObject invisible, vous n’avez d’autre choix que de le sélectionner via la hiérarchie. Du moins c’est de que vous pensiez…

Mettre en valeur ses GameObjects via les outils de l’éditeur

Directement dans l’éditeur, vous pouvez d’ores et déjà mettre en valeur vos GameObjects invisibles sur la scène, et c’est très simple.

Commencez par créer un GameObject vide. Si vous le désélectionnez, il devient invisible sur la scène. Jusque là, rien de nouveau :

Gizmo par défaut sur un GameObject

Mais vous voulez pouvoir le sélectionner facilement sans avoir à passer par la hiérarchie. Et c’est possible.

Sélectionnez le GameObject et jetez un œil du côté de son inspecteur, sur cette icône de cube en haut de la fenêtre :

Inspecteur d'un GameObject

En cliquant dessus, vous faites apparaître un menu qui vous permet ni plus ni moins de personnaliser l’affichage de ce GameObject sur la scène :

Menu de personnalisation de l'affichage d'un GameObject

Le menu est découpé en 3 parties : des bulles de couleurs, des petites icônes, et une bouton « other ».

Les bulles de couleurs permettent d’afficher le nom du GameObject dans une bulle de la couleur sélectionnée comme ceci :

GameObject sélectionné

GameObject sélectionné

GameObject non sélectionné

GameObject non sélectionné

Notez deux choses, en plus de voir visuellement où est le GameObject sur la scène :

  • Vous pouvez maintenant le sélectionner directement depuis la scène.
  • La taille du libellé ne change pas peu importe la distance de la caméra de ce GameObject

 

Les petites icônes permettent de n’afficher que l’icône sélectionnée. Pratique si vous voulez juste avoir un simple marqueur visuel sur la scène (pour signifier les positions d’un chemin par exemple) :

GameObject sélectionné avec une icone

GameObject sélectionné

GameObject non sélectionné avec une icone

GameObject non sélectionné

Le point d’intérêt par rapport à l’affichage du libellé du GameObject est que la taille de l’icône est liée à la distance du GameObject par rapport à la caméra. Plus vous serez loin de celui ci, plus l’icône sera petite :

GameObject sélectionné, mais de loin, avec une icone

GameObject sélectionné, mais de loin

De cette manière, vous ne polluerez pas votre scène avec les Gizmos d’éléments éloignés.

Enfin, en cliquant sur Other, vous pourrez sélectionner une image de votre projet et vous en servir en guise d’icône pour ce GameObject. De cette manière, vous pouvez créer vos propres icônes et symboliser vos GameObjects au plus proche de vos besoins spécifiques :

Affichage d'une icone personnalisée sur un GameObject

La taille des icônes personnalisées suit la même règle que pour les icônes de base : plus le GameObject est loin de la caméra, plus il sera petit sur la scène. Cool non ?

Mettre en valeurs ses GameObjects via des Gizmos

La seconde possibilité nécessite un peu plus de travail et d’écrire du code. En effet, lorsque vous attachez un script à un GameObject, cela vous donne accès à toute une série de méthodes grâce au MonoBehaviour.

Vous avez la possibilité de surcharger des méthodes pour dire à l’éditeur comment dessiner les Gizmos concernant ce GameObject, qu’il soit sélectionné ou non.

Pour se faire, il vous faut utiliser l’une de ces deux méthodes :

private void OnDrawGizmos() { }

private void OnDrawGizmosSelected() { }

La première méthode est appelée tout le temps. C’est à dire que tout ce que vous pourrez dessiner dans cette méthode sera toujours dessiné sur la scène.

La seconde méthode n’est appelée que lorsque le GameObject est sélectionné sur la scène.

Ce genre de fonctionnement est déjà utilisé au coeur d’Unity, avec les Colliders par exemple. Lorsqu’un GameObject avec un Collider est sélectionné, le Collider est dessiné par dessus le GameObject, en vert. Lorsque le GameObject n’est pas sélectionné, le Collider n’est pas dessiné sur la scène.

Le mot de la fin

Si cela ne vous suffit pas pour retrouver vos GameObjects sur la scène, vous pouvez aussi apprendre à rechercher dans la hiérarchie comme un pro.

Cet article vous a appris quelque chose ? Alors dites le autour de vous ! Partagez cette astuce à vos amis.

 


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *