TEMA 6 OBJETOS SCRIPTABLES (continuación)

Sin valoraciones

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Ahora vamos a abrir el script de PlayerSpawner.

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Esta parte del codigo se verá en nuestro inspector, son las llamadas Dependencias.

Son variables públicas que definen los objetos PlayerPathSO, GameObject, Cinemachi- neVirtual Camera y un GameObject

TEMA 6 OBJETOS SCRIPTABLES (continuación)

El primer objeto tiene que ver con el playerPath o camino de acción de nuestro perso­naje, el segundo es un objeto creado en la escena que es el Prefab del player, el tercero tiene que ver con la camara virtual que hemos creado y en último lugar otro objeto que está en nuestra escena que hemos llamado playerParent

Ahora nos venimos a nuestro proyecto y en la escena de Town creamos un objeto lla­mado LevelInitializer, este contendrá un objeto script en su raíz. Por lo que para ello arrastraremos el script del PlayerSpawner dentro del inspector.

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Ahora completaremos sus dependencias. Solo tendremos que dar en los botones que están a la derecha de los cuadros de texto de nuestra Dependencia. Desde las opciones escogemos cada uno de los contenidos que necesita cada entrada

Juego

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Nos colocamos encima del cuadro de texto de Player Path y pulsamos en el botón de la derecha. Elegimos la primera opción llamada Player Path este será nuestro camino de entrada por el cual le diremos a nuestro player que reaccione cuando pase a través de las entradas de nuestra pantalla.

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Nos colocamos encima del cuadro de texto de Player Prefab y pulsaremos en el botón de la derecha. Nos aparecerá el buscador y desde él escribiremos Player para que bus­que dicho prefab y lo añada a esta opción

TEMA 6 OBJETOS SCRIPTABLES (continuación)

En el apartado que pone Follow Camera, arrastraremos desde la ventana de Jerarquía el elemento camara virtual hasta el cuadro de texto

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Por último donde pone Player Parent, tendremos que colocar el siguiente objeto. Lo primero será crearlo así que botón derecho desde nuestra ventana de Jerarquía y seleccionamos Create>Empty Object

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Y ahora arrastramos el objeto que hemos creado con el nombre de PlayerParent hacía el cuadro de texto con el mismo nombre.

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Hecho esto ahora dentro del objeto LevelInitializer crearemos un objeto hijo. Lo seleccionamos y pulsamos botón derecho, Create>Empty Object, llamaremos a este objeto DefaultEntrance

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Desde la ventana del Inspector, seleccionamos el cubo que se encuentra representado a la izquierda del nombre de nuestro objeto. Desde ahí se nos despliega una serie de colores que nos servirán para localizarlo en el mapa de nuestra pantalla. Elegimos el color morado.

Juego

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Este objeto simboliza o es la escena donde nuestro player se pondrá si no encuentra ninguna entrada

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Volvemos a seleccionar el objeto LevelInitializer y dentro del script Scene Initializer pulsamos en el + que se encuentra en la opción OnDependencies Loaded. Aquí le indicaremos que cuando el script de Player Spawner esté cargado aplique una función.

Arrastramos el script Player Spawner al botón que aparece debajo de la acción Runtime Only

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Abrimos las opciones del marco de las Funciones y asignamos de No Function a Player spawner> InstantiatePlayerOnLevelJuego

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Que es el único método publico que tenemos en el script tal como se ve en la imagen:

TEMA 6 OBJETOS SCRIPTABLES (continuación)

Lo que le estamos diciendo aquí es que cuando termine de ejecutar el script se cargue nuestro Player. Y si el Player no encuentra nada lo pondrá en el objeto hijo que hemos creado llamado DefaultEntrance

TEMA 6 OBJETOS SCRIPTABLES (continuación)

 

 

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. Los campos obligatorios están marcados con *

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