Prefabs et instanciation
Les deux vous donnent beaucoup d'une même chose. Ils résolvent des problèmes complètement différents, et choisir le mauvais est une source courante soit de corvée, soit de scènes lentes.
| Prefab | Instanciation | |
|---|---|---|
| Copie | un arbre d'objets | la géométrie d'un objet |
| Chaque copie | entièrement indépendante, modifiable | seulement dessinée, non modifiable |
| Bon pour | une chaise utilisée dans douze pièces | dix mille brins d'herbe |
| Modifier une fois, mettre à jour partout | oui | sans objet — c'est le même objet |
Prefabs
Un prefab est un arbre d'objets enregistré que vous pouvez déposer encore et encore dans vos scènes : une lampe avec sa lumière et sa lueur, une porte avec son cadre et son son, un personnage entièrement rigué.
Modifiez le prefab et chacune de ses instances se met à jour. C'est tout l'intérêt : vous réparez la poignée de porte une fois, pas dans douze pièces.
Chaque instance fait vraiment partie de votre scène : vous pouvez la déplacer, et modifier dessus ce qui est propre à l'endroit où elle se trouve.
Dès que vous vous surprenez à copier un petit groupe d'objets pour la deuxième fois, faites-en un prefab. En créer un après coup, avec douze copies éparpillées, veut dire réconcilier douze jeux de petites différences.
Instanciation
L'instanciation dessine la géométrie d'un objet de nombreuses fois en un seul appel. Mille copies coûtent à peu près ce que coûte une seule, et c'est ce qui rend possibles les champs d'herbe, les foules, les ceintures d'astéroïdes et les forêts.
Trois façons de disposer les copies :
| Source | Les dispose |
|---|---|
grid | sur un réseau régulier, avec un décalage optionnel pour casser la régularité |
scatter | librement dans une boîte ou une sphère |
children | une copie par objet enfant, à la position de chacun |
La source children est l'option « rends ça rapide » : placez les choses à la main là où vous les
voulez, puis activez-la et elles s'effondrent en un seul dessin. Les enfants cessent de se
dessiner eux-mêmes tant qu'elle est active.
Rendre les copies différentes
Les copies ont la même géométrie : sans aide elles se ressemblent toutes et se lisent comme du papier peint. Trois réglages cassent cela :
| Réglage | Effet |
|---|---|
scaleMin · scaleMax | chaque copie prend une taille aléatoire entre les deux |
rotationJitter | chaque copie reçoit une rotation aléatoire |
colorA · colorB | chaque copie prend une teinte entre les deux |
Pour aller plus loin, un graphe de matériau peut lire quelle copie est en train d'être dessinée et faire varier ce que vous voulez à partir de là — ondoyer avec une phase différente, une usure différente, un motif différent.
Un nombre, une forme et un seed produisent la même disposition partout — dans l'éditeur, sur un
téléphone, pour chaque participant d'une salle multijoueur. Rien n'est synchronisé, donc dix mille
copies ne coûtent rien sur le réseau.
Changez le seed pour une autre disposition à partir des mêmes réglages.
maxCount est un garde-fou : les copies au-delà ne sont pas dessinées, donc un chiffre de trop ne
peut pas tenter d'allouer une quantité de mémoire impossible.
Suite : Chargement et écran de lancement