Présentation des nouveaux flux de production Prefab

L'un des principaux ajouts demandés à Unity est la possibilité d'imbriquer des prefabs. Mais nous savons que beaucoup d'entre vous ont besoin de beaucoup plus de modifications que cela pour les flux de production Prefab. Par conséquent, nous améliorons l'ensemble du système en mettant l'accent sur la réutilisabilité, le contrôle et la sécurité. Il s'agit du premier d'une série d'articles de blog expliquant les changements à venir. Si vous ne l'avez pas encore fait lors de la présentation d'hier à Unite Berlin, découvrez ici la compilation Unity avec le nouveau système Prefab.
Commençons par récapituler les bases de ce que sont les prefabs dans Unity. Fondamentalement, une ressource prefab est comme un modèle d'un GameObject et de ses enfants. Vous pouvez utiliser des instances d'une ressource prefab pour créer de nombreuses copies d'un GameObject tout au long de vos scènes. Si la ressource Prefab est modifiée, toutes les instances Prefab sont automatiquement mises à jour en conséquence.
Nous avons discuté avec un large éventail de studios indépendants et AAA pour étudier en détail la façon dont vous travaillez avec les prefabs en ce moment. Un problème que nous avons découvert est que lorsque vous voulez modifier une ressource prefab, vous devez la faire glisser vers une scène ouverte dans la hiérarchie pour la modifier, appliquer les modifications, puis penser à la supprimer à nouveau. Un autre problème majeur était le bouton Appliquer pour les instances prefab dans l'Inspector. Grâce à ce bouton, vous pouviez appliquer accidentellement des modifications à la ressource prefab que vous n'aviez aucun moyen de visualiser.
Pour résoudre ces problèmes, nous avons introduit une gamme de nouvelles fonctionnalités. Nous avons mis en place un backend Prefab rétrocompatible qui prend désormais en charge l'imbrication et l'héritage. Nous avons amélioré la visualisation des remplacements de propriétés et d'objets pour les instances Prefab et ajouté la possibilité d'appliquer des remplacements sur plusieurs niveaux de granularité : par propriété, par Composant/GameObject ou, comme précédemment, l'instance Prefab dans son intégralité. Enfin, nous avons ajouté le mode prefab pour pouvoir modifier une ressource prefab séparément.
Le mode prefab représente un changement fondamental lorsque vous travaillez avec des prefabs. Il vous permet de décider si vous souhaitez apporter des modifications à une instance Prefab ou directement à une ressource Prefab.
Le mode Prefab vous offre une session de modification des ressources prefabs plus contrôlée, car vous pouvez effectuer toutes les modifications de la ressource prefab, y compris les changements structurels, sans recevoir de dialogues vous demandant de rompre la connexion au prefab. Avec le mode Prefab, vous n'avez plus besoin d'apporter de modifications temporaires à une instance Prefab dans le seul but d'appliquer ces modifications à la ressource ultérieurement (avec pour effet secondaire possible d'appliquer d'autres remplacements précédents qui devaient être conservés comme remplacements). Nous vous recommandons donc d'utiliser le mode Prefab pour les modifications des ressources prefabs et de ne remplacer les instances prefab qu'en cas de besoin. Notez que nous avons également amélioré considérablement le flux de production Apply. Plus d'informations sur ce flux de production dans un prochain article de blog !
Le mode prefab prend le relais de la fenêtre Hierarchy et Scene pour afficher la ressource prefab séparément. Vous pouvez reconnaître ce mode par les nouveaux en-têtes dans la fenêtre Hierarchy et Scene. Notez également que la couleur d'arrière-plan du mode prefab peut être personnalisée dans les préférences.

Vous pouvez entrer en mode prefab en effectuant l'une des opérations suivantes :
- Double-cliquez sur le prefab dans la fenêtre Project.
- Cliquer sur la nouvelle flèche dans la fenêtre Hierarchy à côté du GameObject racine de l'instance Prefab.
- Cliquez sur le bouton Ouvrir dans l'Inspector pour trouver le GameObject racine de la ressource Prefab ou de l'instance Prefab.
Pour activer l'imbrication de prefabs, nous avons dû apporter des modifications techniques au backend Prefab. Techniquement, les prefabs sont désormais des ressources importées. Cela signifie que vous ne pouvez plus modifier les GameObjects prefabs dans la fenêtre Project. Par rapport à l'ancien flux de production d'édition directement dans la fenêtre Project, le mode Prefab vous permet de modifier les objets à n'importe quelle profondeur, et de voir ce que vous faites dans la vue Scene.
Une autre conséquence de la fourniture de l'imbrication de prefabs est que vous ne pouvez plus déconnecter une instance Prefab pour apporter des modifications structurelles à cette instance. Cela inclut la suppression de GameObjects, le reparentage de GameObjects ou le remplacement d'un Transform par un RectTransform et vice versa. Vous pouvez maintenant tout faire en mode prefab. Vous pouvez également décompresser une instance Prefab si vous souhaitez supprimer entièrement son lien vers sa ressource Prefab et ainsi restructurer les GameObjects simples résultants à votre guise.
Nous avons introduit le terme « scène » dans l'Éditeur comme concept pour un ensemble de GameObjects isolés des autres GameObjects. Lorsque vous êtes en mode prefab, le fil d'Ariane en haut de la fenêtre Scene représente une étape différente. Chaque scène est comme un « monde » distinct. Par défaut, nous avons la scène principale, qui est la scène où se trouvent toutes vos scènes (celles que vous avez chargées et que vous pouvez voir dans la hiérarchie). Lors de l'ouverture d'un prefab en mode prefab, nous créons une scène prefab pour son contenu. Nous ne déchargeons pas les GameObjects de la scène principale quand une scène prefab est ouverte, ce qui signifie que vous pouvez toujours les voir dans la vue Game.
La vue Scene et Hierarchy affichent toujours l'étape actuelle, qui correspond au fil d'Ariane le plus à droite. Pour revenir à la scène principale avec vos scènes, cliquez sur le bouton « Scènes » dans le fil d'Ariane de la fenêtre Scene ou sur le bouton flèche Retour dans la hiérarchie.
Pour voir les nouveaux flux de production en action consultez la vidéo ci-dessous :
Pour essayer les nouvelles fonctionnalités de Prefab, téléchargez la compilation d'aperçu depuis notre page Prefab. Consultez également notre forum dédié aux prefabs améliorés pour plus d'informations, de questions et de commentaires.
Restez à l'écoute pour les prochains articles de blog avec des informations plus détaillées sur les autres parties des flux de production Prefab améliorés.
Si vous voulez voir les flux de production améliorés de prefabs en action, nous vous recommandons vivement de regarder la diffusion en direct de Unite Berlin aujourd'hui sur YouTube ou Twitch. À partir de 17h00, heure de Berlin, vous pourrez voir le flux de production amélioré avec Ciro Continisio. Après cela, Rune Skovbo Johansen et Steen Lund vous aideront à mieux comprendre les avantages et les inconvénients de nos décisions d'implémentation dans leur plongée technique dans le nouveau système prefab (18h00). Nous travaillerons sur l'édition des discussions plus tard et nous les téléchargerons sur notre chaîne YouTube dans un délai d'un mois après la conférence.
