Ordinateurs

Comment utiliser les préfabriqués dans Unity

Matt Bird écrit toutes sortes de bêtises, mais il aime écrire des tutoriels pour Unity.

L’un des éléments constitutifs de Unity, les préfabriqués sont essentiels à la création de tout jeu basé sur Unity. Un atout glisser-déposer qui apparaîtra constamment pendant le processus de développement, le préfabriqué est l’une des premières choses que vous devez comprendre lorsque vous apprenez à utiliser Unity.

Qu’est-ce qu’un préfabriqué ?

Un préfabriqué dans le contexte de Unity est un GameObject pré-emballé avec un ensemble spécifique de composants, de valeurs et d’objets enfants. Chaque fois qu’une instance d’un préfabriqué est créée dans le jeu, elle est livrée avec les mêmes attributs à chaque fois et peut ensuite être manipulée et modifiée sans changer le préfabriqué de base. Les préfabriqués se trouvent dans les actifs du projet de l’inspecteur.

Captures d’écran prises par moi-même. Unity détenu et développé par Unity Technologies.

Prenez l’image ci-dessus comme exemple. Dans la fenêtre Projet, vous pouvez voir un certain nombre de ressources. L’actif en surbrillance, HubGuy, est un préfabriqué. Si vous deviez faire glisser un millier de copies de HubGuy dans le jeu, chacune d’entre elles aurait des composants Sprite Renderer et Animator, et ces composants seraient tous identiques les uns aux autres.

Mais disons que vous voulez un HubGuy légèrement différent de l’original. Vous pouvez créer un préfabriqué différent pour refléter le changement, comme ceci :

comment-créer-un-prefab-dans-unity

Le deuxième GameObject, HubGuyPink, a été légèrement modifié pour que le sprite semble être rose. Ce nouveau GameObject a ensuite été enregistré en tant que préfabriqué séparé, ce qui a donné deux préfabriqués distincts dans la fenêtre Projet : HubGuy et HubGuyPink. Vous pouvez ensuite créer autant de préfabriqués de HubGuy que vous le souhaitez, chacun avec une combinaison différente de couleurs, de composants, de valeurs, etc.

Comment créer un préfabriqué ?

La création d’un préfabriqué dans Unity est la partie la plus simple du processus. Une fois que vous avez configuré le GameObject que vous souhaitez utiliser comme préfabriqué, choisissez-le dans la hiérarchie à gauche. . .

comment-créer-un-prefab-dans-unity

. . . et faites-le glisser vers le dossier de votre choix dans la fenêtre Projet. Cela créera le préfabriqué dans vos fichiers. Vous pouvez ensuite faire glisser et déposer le préfabriqué sur la hiérarchie ou directement dans la scène pour créer une instance du préfabriqué. (Notez que si vous déposez le préfabriqué dans la hiérarchie, il se déplacera directement vers les coordonnées prédéfinies du préfabriqué.)

A lire aussi :  Comment exécuter l'utilitaire Dell Diagnostics à partir d'un lecteur flash USB

Il est important de comprendre que le préfabriqué n’existe que dans les fichiers du projet. Chaque fois que vous faites glisser et déposez le préfabriqué dans le jeu, il devient un exemple du Préfabriqué. Vous pouvez modifier les valeurs de l’instance au moment de l’exécution, alors qu’il n’est généralement pas possible de modifier les valeurs d’un préfabriqué pendant que le jeu est en cours d’exécution. (Ce ne serait pas non plus une bonne idée.)

Qu’est-ce qui rend le préfabriqué utile ?

Mis à part la facilité de duplication, les préfabriqués sont excellents car ils permettent des changements à grande échelle sans avoir à se soucier des instances individuelles d’un GameObject. Disons, par exemple, que vous aviez un grand groupe de HubGuyPinks à l’écran, mais que vous vouliez les changer en une autre nuance de rose.

comment-créer-un-prefab-dans-unity

Cela fait beaucoup de sprites à changer. Plutôt que de les brasser individuellement, vous pouvez sélectionner le préfabriqué dans la fenêtre Projet, comme ci-dessus, et modifier les valeurs dans l’inspecteur. Ce faisant, vos Prefabs passent d’une légère teinte de rose. . .

comment-créer-un-prefab-dans-unity

Faites défiler pour continuer

. . . à quelque chose de beaucoup plus sombre. Le changement dans les instances est immédiat et peut être plus radical que quelque chose de superficiel. Vous pouvez, par exemple, ajouter un nouveau composant au préfabriqué – peut-être un script personnalisé que vous avez créé – et chaque préfabriqué aurait alors immédiatement ce composant.

La modification des préfabriqués peut également fonctionner dans les deux sens. Disons que vous travaillez sur un GameObject spécifique et décidez que vous souhaitez appliquer la modification que vous avez apportée à tous les autres Prefab. Si vous regardez en haut des valeurs de GameObject dans l’inspecteur, vous verrez une petite barre absente lorsque vous regardez le préfabriqué.

comment-créer-un-prefab-dans-unity

Il existe trois options : Sélectionner, Rétablir et Appliquer. Sélectionnez vous dirige vers le préfabriqué de GameObject dans la fenêtre Projet, ce qui est assez simple. Revert et Apply, cependant, sont beaucoup plus puissants, et dans ce cas, vous voulez Appliquer le changement au préfabriqué. Si vous deviez cliquer sur Appliquer, cela changerait le préfabriqué pour refléter l’état actuel du GameObject et donc passer à chaque instance de ce préfabriqué.

D’un autre côté, disons que l’instance avec laquelle vous avez bricolé n’est plus à votre goût. Vous pouvez le supprimer, créer une nouvelle instance et recommencer . . . ou vous pourriez frapper le Revenir bouton et remettez-le aux valeurs du préfabriqué.

A lire aussi :  Comment créer une image 3D à partir d'une photo 2D

Préserver les valeurs

Les préfabriqués sont également intéressants car ils vous permettent de conserver des GameObjects à usage unique et modifiables qui sont importants pour votre jeu. Cela reviendra plus souvent que vous ne le pensez.

Disons, par exemple, que vous créez un RPG et que les valeurs de chaque personnage sont attachées à leur GameObject dans des scripts de composants. Vous n’aurez probablement qu’une seule itération de ce personnage dans votre jeu, et vous finirez par beaucoup bricoler avec les valeurs. Selon leur complexité, un personnage de joueur peut avoir une douzaine ou plus de scripts qui lui sont attachés.

Que se passe-t-il si vous supprimez accidentellement le GameObject ? Eh bien, j’espère que vous pouvez simplement annuler l’erreur et continuer, mais il est facile de ne pas le remarquer et de perdre une tonne de progrès. En créant – et en mettant à jour régulièrement – un préfabriqué du personnage, vous pouvez facilement conserver le GameObject dans le projet, ce qui vous permet de retirer rapidement une nouvelle copie si l’ancienne est supprimée. Considérez Prefabs comme une sorte de fichier de sauvegarde.

Cela ne s’applique pas seulement aux personnages non plus. Idéalement, vous devriez créer des préfabriqués de pratiquement tout dans votre jeu. La caméra, l’interface utilisateur, l’arrière-plan, tous les GameObjects invisibles qui exécutent des scripts en arrière-plan. . . vous ne pouvez jamais utilisation les préfabriqués, mais conserver une liste soigneusement cataloguée et souvent mise à jour des GameObjects importants vous évitera de gros maux de tête lorsque les choses tournent mal. (Et ils le feront. Ils le feront toujours.)

Un avertissement sur les préfabriqués

Parce que les changements apportés aux préfabriqués peuvent être si drastiques, il est facile de faire des erreurs lors de l’application de ces changements. Disons que vous travaillez sur une instance d’un préfabriqué mais que vous sélectionnez accidentellement le préfabriqué lui-même. Chaque valeur que vous saisissez sera transmise aux instances, et vous ne remarquerez peut-être pas les changements jusqu’à ce que vous entriez dans l’exécution et que votre jeu se transforme en une monstruosité défectueuse.

D’un autre côté, il est étonnamment facile d’entrer dans le flux de travail et d’appliquer accidentellement des modifications à chaque préfabriqué lorsque vous ne vouliez que ces modifications soient reflétées dans une seule instance. Une simple annulation instantanée changera le préfabriqué, mais si vous avez trente actions avant de remarquer l’erreur, la correction des choses peut prendre un certain temps. La création de jeux est un travail fatigant et vous devez toujours supposer que vous allez régulièrement le gâcher.

A lire aussi :  Comment capturer des paquets à l'aide de pfSense

Un autre avertissement concernant les préfabriqués

Une dernière chose! Comme pour tous les actifs dans Unity, il vous est possible de supprimer des préfabriqués. Tous les préfabriqués ne fonctionneront pas comme vous le souhaitez. Sélectionnez le préfabriqué dans la fenêtre Projet et appuyez sur Supprimer. Vous recevrez alors un avertissement indiquant que vous ne pouvez pas annuler cette action et le préfabriqué disparaîtra définitivement. Confirmez ceci et le préfabriqué est parti.

Ça sonne juste ? Eh bien, encore une fois, il est facile de bousiller et de supprimer accidentellement des choses que vous vouliez conserver, surtout lorsque vous êtes pressé. Il est probable que chaque développeur Unity expérimenté ait supprimé un préfabriqué qu’il voulait conserver au moins une fois. Heureusement, il existe un moyen d’annuler cela, en supposant que vous ayez une instance du préfabriqué à portée de main.

comment-créer-un-prefab-dans-unity

Jetez un coup d’œil à la hiérarchie. Les instances dérivées des Prefabs apparaissent ici en bleu, tandis que les GameObjects sans Prefabs apparaissent en noir. Trois de ces GameObjects, cependant, apparaissent en rouge rosé. Ce sont des GameObjects qui ont été créés en tant que préfabriqués mais qui ont maintenant perdu cette connexion. Ils ne sont pas supprimés instantanément mais apparaissent dans une sorte d’état orphelin. Si vous cliquez sur l’une des instances, la barre Prefab en haut indiquera désormais simplement « Manquant ».

Toutes les valeurs du Prefab seront conservées dans ces GameObjects, heureusement, donc pour récupérer le Prefab, tout ce que vous avez à faire est de glisser-déposer l’une des Instances dans la fenêtre Projet. Cela ressuscitera essentiellement le préfabriqué. (Bien que les autres instances resteront orphelines et que vous devrez les supprimer et créer de nouvelles instances qui se reconnecteront au nouveau préfabriqué. Vous ne pouvez pas toutes les gagner.)

Ce contenu est exact et fidèle au meilleur de la connaissance de l’auteur et ne vise pas à remplacer les conseils formels et individualisés d’un professionnel qualifié.

Bouton retour en haut de la page