Prefabs e instanciación
Ambos te dan muchos de algo. Resuelven problemas completamente distintos, y elegir el equivocado es una fuente habitual de tedio o de escenas lentas.
| Prefab | Instanciación | |
|---|---|---|
| Copia | un árbol de objetos | la geometría de un objeto |
| Cada copia | totalmente independiente, editable | solo se dibuja, no se edita |
| Bueno para | una silla usada en doce salas | diez mil briznas de hierba |
| Editar una vez, actualizar en todas partes | sí | no aplica: todas son el mismo objeto |
Prefabs
Un prefab es un árbol de objetos guardado que puedes soltar en escenas una y otra vez: una lámpara con su luz y su brillo, una puerta con su marco y su sonido, un personaje totalmente montado.
Cambia el prefab y todas sus instancias se actualizan. De eso se trata: arreglas el pomo de la puerta una vez, no en doce salas.
Cada instancia es una parte real de tu escena: puedes moverla y cambiar en ella lo que sea específico del sitio donde está.
En cuanto te pilles copiando un pequeño grupo de objetos por segunda vez, conviértelo en prefab. Hacerlo después, cuando ya tienes doce copias dispersas, significa reconciliar doce juegos de pequeñas diferencias.
Instanciación
La instanciación dibuja la geometría de un objeto muchas veces en una sola llamada. Mil copias cuestan más o menos lo que cuesta una, que es lo que hace posibles siquiera los campos de hierba, las multitudes, los cinturones de asteroides y los bosques.
Tres formas de disponer las copias:
| Fuente | Las dispone |
|---|---|
grid | en una retícula regular, con desorden opcional para romper la regularidad |
scatter | sueltas dentro de una caja o una esfera |
children | una copia por objeto hijo, en la posición de cada uno |
La fuente children es la opción «haz esto rápido»: coloca las cosas a mano donde las quieras,
luego actívala y se colapsan en un único dibujado. Mientras está activa, los hijos dejan de
dibujarse por su cuenta.
Hacer que las copias se vean distintas
Las copias son la misma geometría, así que sin ayuda se ven idénticas y se leen como papel pintado. Tres ajustes rompen eso:
| Ajuste | Efecto |
|---|---|
scaleMin · scaleMax | cada copia toma un tamaño aleatorio entre ambos |
rotationJitter | cada copia recibe un giro aleatorio |
colorA · colorB | cada copia toma un tinte entre los dos |
Para más que eso, un grafo de material puede leer qué copia se está dibujando y variar a partir de ahí lo que quieras: mecerse con otra fase, otro grado de desgaste, otro patrón.
Un recuento, una forma y un seed producen la misma disposición en todas partes: en el editor, en
un móvil, para cada participante de una sala multijugador. Nada se sincroniza, así que diez mil
copias no cuestan nada en la red.
Cambia el seed para obtener otra disposición con los mismos ajustes.
maxCount es una barandilla de seguridad: las copias que pasen de ahí no se dibujan, así que un
dígito de más no puede intentar reservar una cantidad imposible de memoria.
Siguiente: Carga y pantalla de lanzamiento