noviembre 16, 2021

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);

Antonio avila
Author
Antonio Ávila
Plain Concepts Research

¿Ya te vas?

Suscríbete a nuestra newsletter para estar al día de las últimas noticias, casos de éxito y mucho más. 

No mandamos spam y puedes darte de baja en cualquier momento.