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.