Iniciando nuestro custom Editor
Clase 13 de 20 • Curso de Herramientas de Unity
Resumen
¿Cómo empiezo a crear un Custom Editor en Unity?
¡Es hora de adentrarse en el mundo de los Scriptable Objects y Custom Editors en Unity! Los Scriptable Objects son una poderosa herramienta que te permite almacenar y gestionar datos dentro del editor de Unity de manera eficiente, semejante a un JSON, pero con funcionalidades extendidas. Vamos a crear una base de datos para un juego RPG usando Scriptable Objects y exploraremos cómo expandir sus capacidades para facilitar la gestión de información.
¿Qué es un Scriptable Object y cómo se crea?
Un Scriptable Object es una clase especial en Unity que actúa como contenedor de datos y nos permite crear instancias reutilizables que no dependen de objetos de juego. Para crear nuestro Scriptable Object, no necesitaremos la clase MonoBehaviour. Aquí te mostramos cómo iniciar:
using UnityEngine;
[CreateAssetMenu(fileName = "Item", menuName = "Tools/ScriptableItems")]
public class ItemScriptableObject : ScriptableObject
{
// Estructura de datos para ítems
[System.Serializable]
public struct Item
{
public string displayName;
public ItemType itemType;
public Sprite icon;
public int damage;
public int restoreAmount;
}
[SerializeField]
private Item item;
}
public enum ItemType
{
Weapon,
Potion
}
¿Cómo estructurar y serializar datos en un Scriptable Object?
Es esencial estructurar nuestros datos para un fácil acceso y manipulación. En nuestro ejemplo, creamos una estructura Item que contiene atributos como displayName, itemType, icon, damage y restoreAmount. No olvides que para que Unity pueda mostrar estos datos en el inspector, deben ser serializables.
DisplayName: Nombre visible del ítem.ItemType: Tipo del ítem, definido por una enumeración (enum).Icon: Imagen que representa el ítem.Damage: Daño del ítem si es un arma.RestoreAmount: Cantidad restaurada por el ítem si es una poción.
Para que Unity reconozca la estructura en el inspector, debe estar marcada con el atributo [System.Serializable].
¿Cómo genero y utilizo Scriptable Objects en Unity?
Después de definir el Scriptable Object y sus datos, podemos generarlo y verlo en Unity. Sigue estos pasos para crear instancias y gestionar tus datos:
-
Crear un nuevo Scriptable Object:
- Ve a la carpeta en la que deseas almacenar tu objeto.
- Haz clic derecho, selecciona
Crear→Tools→ScriptableItems. Aparecerá una nueva instancia que puedes personalizar.
-
Modificar los atributos en el Inspector:
- Asigna un
DisplayName, selecciona unItemType, elige unIcony ajusta los valores deDamageoRestoreAmount, según corresponda.
- Asigna un
-
Personaliza tus objetos:
- Edita y gestiona múltiples instancias de objetos sin necesidad de modificar los assets directamente.
- Crea una base de datos completa con diversos ítems, adecuándolos a tus necesidades de diseño de juego.
Ahora que dominas la creación de Scriptable Objects y estás a un paso de personalizar más tu editor, te animo a seguir explorando y creando tus propios elementos únicos para tu juego RPG. La flexibilidad y potencia de los Scriptable Objects en Unity te permiten manejar distintos tipos de datos con gran eficiencia y control. ¡Buena suerte en tu viaje creativo!