Prefabs
Un prefab es un asset que contiene una entidad serializada y puede ser instanciada en su escena. Es útil cuando se crean muchas instancias del mismo tipo de entidad como columnas, sillas, componentes de UI, etc. Podemos simplemente duplicar las entidades, pero el uso de prefabs es más eficiente porque al hacer algunos cambios en el prefab se propagarán automáticamente a todas sus instancias en las escenas.
Evergine está añadiendo una primera versión de nuestro nuevo sistema de Prefab, con un núcleo de nuevas características mientras trabajamos en añadir otras interesantes en un futuro próximo. En esta primera versión suportamos la creación de prefab y y el instanciamiento, y planeamos añadir un editor completo de características en nuestra próxima versión.
Creando prefabs en Evergine Studio
Ahora mismo podemos crear un Prefab seleccionando una entidad, haciendo clic con el botón derecho del ratón sobre ella y seleccionando el elemento «Create prefab» en el menú contextual.
Esto creará un asset de prefab llamado como la entidad en la carpeta de assets actual.
Instanciación de prefabs en Evergine Studio
Para instanciar un prefab en tu escena solo tienes que arrastrar un asset Prefab al visor de la escena y se creará una nueva instancia de Prefab.
Una vez instanciada, la Prefab Instance en tu escena puede ser modificado y transformado, y la escena mantendrá un registro de esos cambios. En este ejemplo hemos creado un simple minibosque.
Instanciación de prefabs por código
Instanciar un prefab desde código también es muy sencillo. Solo tenemos que llamar al método Instantiate del objeto Prefab.
var treePrefab = this.assets.Load<Prefab>(EvergineContent.Prefabs.tree);
var treeInstance = treePrefab.Instantiate();
this.Managers.EntityManager.Add(treeInstance);