SCRIPTABLE OBJECTS en Unity

En este articulo veremos que es un scriptable object

Como no, necesitas conocimientos previos en unity y en programación, sobre todo programación.

Que es...

Es una forma para contener datos que se deseen usar, obtener, cambiar, etc. Ayuda a facilitar estas acciones y la obtención de los datos en cuestión.


Forma de uso

En el ejemplo, queremos tener los datos de unos poderes para mostrárselos al usuario, un nombre y una pequeña descripción. Seguiremos estos pasos.


1. Crear la plantilla

Creamos un script y le damos un nombre (recomiendo usar un nombre especifico a todos estos tipos de archivos, como NombreData). Y ahora, en vez de usar el MonoBehaviour, usaremos ScriptableObject

Ademas agregaremos CreateAssetMenu para poder crear objetos con nuestra plantilla. Debe quedar algo así:

Primero que todo vemos en la cuarta linea [CreateAssetMenu(fileName = "New poderes data", menuName = "Poderes data")] fileName: es el nombre por default de los archivos nuevos que se van a crear; menuName: es como aparecer en el menú de creación de elementos.

Vemos la clase que hereda de ScriptableObject.

También tenemos las variables, aquí sera el momento para escribir todos los datos a usar, en ejemplo esta en privado para que no se pueda cambiar, el nombre y descripción. 

Como las variables son privadas se creo unos getters para poder obtener sus datos, pero, se puede dejar en publico si es el caso. 

Ademas se pueden agregar variables u otras cosas que se necesiten para la obtención de datos...


2. Usar la plantilla

Al dar click se creara un scriptable, entonces le ponemos la información deseada:


3. Usar los objetos

Daré un ejemplo, deseo mostrar el nombre y la descripción, entonces creo un nuevo script y lo agrego a cada objeto, luego debemos poner el scriptable y otras variables que queramos usar. Y luego, según mi caso, muestro en un texto la información, así:



Bueno, y así tenemos un scriptable object. La idea, como ya se a comentado, es facilitar la consulta de datos, así reduciendo el coste operativo del computador; también reduciendo el numero de información copiada que es común en Unity al momento de crear un objeto prefab.


Bibliografía

Video de apoyo

Documentacion de unity