TEMA 6 OBJETOS SCRIPTABLES (continuación)

Sin valoraciones

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Ahora si nos venimos a Assets>ScriptableObjects>Events cuando nosotros cliquemos encima botón derecho Create>GameEvents>LoadScene

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Nos creará un nuevo scriptable object que es el canal donde estaremos lanzando eventos y escuchandolos.

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Lo renombraremos como LoadLevelRequestGameEvent

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Vamos a duplicarlo con el atajo de teclado Ctrl+D y vamos a renombrarlo como LoadMenuRequestGameEvent

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Ahora una vez creado estos dos scriptable Objects nos venimos al objeto ScreenLoaderManager y crearemos los scripts para estos dos scripts. Así que desde la ventana del Inspector pulsamos en Add Component y elegimos SOArchitecture>EventListeners>LoadSceneRequest

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Lo volvemos a añadir a nuestro inspector del SceneLoaderManager. Quedando así:

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Desde la carpeta Assets>ScriptableObjects>Events arrastraremos primero el LoadLevel a la primera opción que hemos creado y el LoadMenu para la segunda.

TEMA 6 OBJETOS SCRIPTABLES (continuación)

De esta manera crearemos nuestro juego a base de clics. Así que en el primera opción del LoadScreenRequest le damos a + en su ListEmpty y arrastraremos el script al cuadro que pone NoneObject

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Dentro del apartado que pone No function selecionaremos la opción Scene-
LoaderManater>OnLoadLevelRequest

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Ahora repetimos el proceso para el otro listener solo que ahora pondremos en sus funciones añadiremos el OnLoadMenuRequest

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Con esto ya tendríamos nuestro sistema de carga de escenas implementado.

 

 

Los ScriptableObjects son una característica poderosa de Unity que te permite crear objetos personalizados que contienen datos y funcionalidades reutilizables sin la necesidad de crear instancias de clases MonoBehaviour:

1. Crear un ScriptableObject:

1.1. Crear ScriptableObject:

  • Crea una nueva clase que herede de ScriptableObject.
csharp
using UnityEngine; [CreateAssetMenu(fileName = "NuevoObjetoScriptable", menuName = "Scriptables/ObjetoScriptable")] public class ObjetoScriptable : ScriptableObject {public string nombre; public int valor; public Sprite icono; }

1.2. Añadir Datos:

  • Define las variables y datos que deseas incluir en tu ScriptableObject.

2. Crear Instancia del ScriptableObject:

2.1. Crear Instancia:

  • Haz clic derecho en el Assets, selecciona «Create» -> «Scriptables» y elige tu ScriptableObject.
  • Configura los datos en la nueva instancia.

3. Utilizar el ScriptableObject en un Script:

3.1. Referenciar el ScriptableObject:

  • Puedes referenciar tu ScriptableObject en cualquier script MonoBehavoir, como en un GameManager.
csharp
public class GameManager : MonoBehaviour { public ObjetoScriptable objetoScriptable; voidStart() { Debug.Log("Nombre del Objeto: " + objetoScriptable.nombre); Debug.Log("Valor del Objeto: " + objetoScriptable.valor); } }

3.2. Asignar el ScriptableObject:

  • Arrastra y suelta la instancia del ScriptableObject en el campo público del inspector del GameManager.

4. Uso Avanzado: Listas de ScriptableObjects:

4.1. Crear una Lista:

  • Puedes crear listas de ScriptableObjects en otros ScriptableObjects o en scripts MonoBehavoir.
csharp
public class ContenedorDeObjetos : ScriptableObject { public List<ObjetoScriptable> objetos = new List<ObjetoScriptable>(); }

4.2. Configurar y Utilizar la Lista:

  • Configura y utiliza la lista de ScriptableObjects en el inspector o en tiempo de ejecución.

5. Beneficios de los ScriptableObjects:

5.1. Reutilización:

  • Puedes reutilizar ScriptableObjects en varios lugares sin duplicar código.

5.2. Configuración en el Inspector:

  • Puedes ajustar los datos de los ScriptableObjects en el inspector de Unity.

5.3. Fácil de Versionar:

  • Los ScriptableObjects son serializables, lo que facilita el versionamiento y la colaboración.

5.4. Centralización de Datos:

  • Puedes centralizar datos compartidos entre diferentes objetos y sistemas en un solo ScriptableObject.

6. Ejemplo de Configuración en el Inspector:

6.1. Añadir en el Inspector:

  • Configura variables y atributos visibles en el inspector.
csharp
[CreateAssetMenu(fileName = "NuevoObjetoScriptable", menuName = "Scriptables/ObjetoScriptable")] public class ObjetoScriptable : ScriptableObject { [Header("Configuración del Objeto")] public string nombre; public int valor; publicSprite icono; }

Compártelo en tus redes

Share on facebook
Share on twitter
Share on linkedin
Share on pinterest

Valore este curso

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Utilizamos cookies para asegurar que damos la mejor experiencia al usuario en nuestra web. Si sigues utilizando este sitio asumimos que estás de acuerdo. VER