[Unity] Le Prefab en 2018.3 : Une Nouvelle Façon De Penser


[Unity] Le Prefab en 2018.3 : une nouvelle façon de penser

Le Prefab, cet ami sympa, mais parfois super relou

Et si je vous disais que le système de Prefab est tout pourri ?

Quand on utilise beaucoup un outil, on finit toujours par arriver à le pousser dans ses derniers retranchements. C’est le cas pour le système de Prefabs (qui n’est pas si pourri que ça, soyons honnêtes).

Il a des limitations qui peuvent sérieusement amputer votre productivité dans certains cas de figure. Sachant que c’est un outil qui est là pour vous faire gagner du temps, c’est quand même assez moche…

Un outil qui ne répond plus aux attentes

Le principe fondamental du Prefab, c’est de vous permettre de créer des modèles de GameObjects pour les réutiliser où vous voulez, quand vous voulez dans votre projet.

Jusque là, tout va bien, c’est une bonne idée non ? Sauf si vous voulez l’utiliser pour faire du Level Design.

Si vous ne creusez pas trop loin, ça ne devrait pas vous poser de problème. Mais dès que vous allez essayer de créer des environnements complexes avec des variations sans vouloir y passer 200 heures par scène, là c’est un autre sujet…

S’il y a un truc super important en level design, c’est la variété. Posez le même groupe de GameObjects 150 fois sur votre scène et vous pouvez être sûr que ça va faire exploser l’immersion de votre joueur. Il va le voir. Et ça ne sera pas agréable pour lui.

Vous avez donc des Prefabs de base et vous voulez des variations. C’est là que ça devient fun (ou pas). Vous pouvez modifier à la main chaque instance de vos Prefabs pour créer les modifications spécifiques. Sauf qu’à la fin, vous allez perdre toute la puissance du Prefab qui permet de diffuser une modification sur toutes les instances utilisées.

Autrement dit, si vous faites des modifications sur tous les Prefabs de votre scène, vous êtes grillé.e. Un peu comme ces brochettes :

Grillé comme une broche

Vous avez peut-être eu la lumineuse idée de mettre un Prefab dans un Prefab. Après tout, vous modifiez juste le sous-prefab et il sera mis à jour partout. Problem solved !

Sauf que non. Je vous arrête tout de suite… ce n’est pas possible. Pas dans le système de Prefabs avant la version 2018.3 en tout cas.

Lorsque vous créez un Prefab, Unity casse tous les liens vers les autres Prefabs qui pourraient être dedans. C’est comme ça. Vous n’y pouvez rien. Faut faire avec.

À moins que…

Tel le Phoenix, le Prefab renaît de ses cendres en 2018.3

Dans son effort de modernisation du moteur, Unity Technologies a effectué une refonte complète du fonctionnement de la hiérarchie dans la version 2018.3.

Et devinez ce qu’ils ont changé au passage ? Le système de Prefab bien entendu. Sortez le champomy et les chips !

Ce nouveau système 2.0 apporte les choses suivantes :

  • Les Prefabs imbriqués (il était temps !)
  • Le concept de variantes de Prefab : la personnalisation sans perdre les avantages du Prefab
  • Un nouveau mode d’édition des Prefabs
★ Les lecteurs ont aussi apprécié cet article :▶︎  Formation GAME DEV LAUNCHER : devenez développeur de jeux vidéo indés

Nouvelle interface de hiérarchie

L’affichage de la hiérarchie est légèrement modifié. Rien de bien méchant, rassurez-vous. Dans le listing des GameObject, vous avez toujours les noms affichés en bleu si c’est un Prefab. Mais en plus, vous avez maintenant un petit cube à côté, lui aussi bleu ou gris selon si c’est un Prefab ou pas :

Nouvelle Hierarchie Unity 2018.3

Nouvelle Hierarchie Unity 2018.3

 

Si vous regardez bien, vous verrez également des petits chevrons sur la droite, mais uniquement pour les Prefabs.

Et si vous regardez encore mieux, vous verrez aussi que l’un des Prefabs a une icône bizarre, mais on y reviendra un peu plus bas.

En cliquant sur un chevron, on rentre dans le mode d’édition d’un Prefab. C’est nouveau. Maintenant, pour éditer un Prefab, il faut rentrer dans ce nouveau mode dans lequel vous ne verrez plus rien à part votre Prefab :

Éditeur de prefab Unity 2018.3

Éditeur de prefab Unity 2018.3

De là, vous pouvez faire vos modifications… ou bien directement accéder à un sous-prefab pour le modifier en utilisant le chevron dans la hiérarchie :

Éditeur de prefabs imbriqué Untiy 2018.3

Éditeur de prefabs imbriqué Unity 2018.3

Franchement, c’est de l’or en barre cette feature. Vous pouvez “remonter d’un cran” dans la hiérarchie de Prefabs en utilisant le chevron qui part vers la gauche en haut de la hiérarchie afin de retourner sur la scène.

Nouvelle interface de gestion des Prefabs

Il n’y a pas que la hiérarchie qui a changé. L’interface de l’inspecteur a elle aussi subi un petit lifting. Les anciens boutons ont cédé leur place à deux boutons “Open” et “Select” ainsi qu’une nouvelle liste déroulante “Overrides” :

Inspecteur prefab Unity 2018.3

Inspecteur prefab Unity 2018.3

  • Le bouton “Open” permet d’ouvrir le Prefab en édition
  • Le bouton “Select” lui ne change pas. Il permet toujours de sélectionner le Prefab dans la fenêtre Project. Très utile sur des gros projets
  • Enfin, la liste déroulante Overrides permet de gérer les modifications

C’est là que ça devient VRAIMENT chouette. Sur la système précédent, vous pouviez juste appliquer la totalité des modifications sur un Prefab. Autant dire qu’il était facile de se gourer et d’enregistrer des mauvaises valeurs… Mais c’est fini ce temps-là.

La fenêtre Overrides vous liste tous les composants qui ont été modifiés par rapport au Prefab. D’un seul coup d’oeil, vous pouvez voir ce qui a changé. Mais ça va encore plus loin (ils n’ont pas fait les choses à moitié sur ce point-là).

En sélectionnant un composant dans la liste déroulante, vous pouvez voir le détail champ par champ :

Inspecteur modifications prefab Unity 2018.3

Inspecteur modifications prefab Unity 2018.3

Sur cet exemple, c’est la position qui a été modifiée par rapport à la source. Incroyable non ? Mais ce n’est pas fini. Vous pouvez choisir d’appliquer la modification d’un seul champ dans un composant par exemple. Plus besoin de tout enregistrer. Fini les enregistrements par erreur. Vous avez maintenant la possibilité d’une précision extrême.

L’arrivée des Variantes

Nouvelle fonctionnalité ajoutée avec ce nouveau système : les variantes.

Auparavant, vous pouviez personnaliser une instance d’un Prefab sur la scène. Ces valeurs n’étaient alors pas écrasées par les modifications apportées sur le modèle. Les variantes sont basées sur le même principe… sauf qu’elles fonctionnent comme des Prefabs classiques.

★ Les lecteurs ont aussi apprécié cet article :▶︎  Comment détecter la collision dans Unity

Vous pouvez avoir un Prefab “Porte” et créer une variante de ce Prefab “Porte bleue” qui hérite de tous les attributs du Prefab “Porte”, mais qui change juste sa couleur. Si vous changez l’échelle dans le Prefab “Porte” elle sera reportée sur le Prefab “Porte bleue”. Par contre, si vous changez la couleur, elle ne sera pas reportée puisqu’elle est surchargée dans “Porte bleue”.

C’est facile de faire la différence entre un GameObject classique et un Prefab, mais comment on fait la différence entre un Prefab et une variante ?! Il y a deux indicateurs. Tout d’abord, l’icône de cube bleu dans la hiérarchie est légèrement différente :

Variante Prefab Unity 2018.3

Variante Prefab Unity 2018.3

La variante va avoir un cube avec des petites flèches qui représentent un embranchement.

Le second endroit est dans l’inspecteur. C’est discret, mais très explicite. Pour un Prefab, le texte sera “Prefab” :

Inspecteur prefab Unity 2018.3

Inspecteur prefab Unity 2018.3

Pour une variante, le texte sera “Variant” :

Inspecteur prefab variante Unity 2018.3

Inspecteur prefab variante Unity 2018.3

(notez la petite icône de cube avec les flèches)

Un nouvel outil, une nouvelle façon de travailler

Tous ces nouveaux outils n’auront aucun impact direct sur votre quotidien. Le système fonctionne globalement de la même manière et vous pouvez continuer d’utiliser les Prefabs comme avant.

Mais ils rendent possible une nouvelle façon de travailler avec l’imbrication. C’est une autre façon de penser qui peut sérieusement vous faire gagner un temps colossal. Il faut penser en termes de briques de contenus qui vont être assemblées pour créer votre contenu final.

Ce système, c’est :

  • Moins de manipulations à faible valeur ajoutée
  • Plus de variété dans le contenu final
  • Plus de temps pour faire autre chose

Le nouveau workflow de Prefabs est disponible à partir de la version 2018.3 de Unity. C’est directement intégré au moteur, vous n’avez rien à installer, alors ça serait dommage de vous priver de cette fonctionnalité !

Envie d’en savoir plus ?

Je m’appelle Alex Frêne, je suis enseignant en école de Game Design et développeur Unity. Je crée régulièrement des contenus d’apprentissage autour d’Unity que vous pouvez retrouver sous différents formats :

Happy Gamedev !


Benoît Freslon

J'adore amuser les gens avec mes jeux depuis mon plus jeune âge. Je suis développeur professionnel de jeux vidéo depuis 2006, créateur de jeux vidéo indépendants, formateur dans les écoles de jeux vidéo, mais aussi game designer et développeur en Freelance.

Vous aimerez aussi...

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

×
DISPONIBLE !

[variable_1] a acheté le livre Créer un jeu vidéo : le guide de A à Z

En savoir plus ▶︎

Commencez dès maintenant à créer votre jeu vidéo comme les pros