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 unIcon
y ajusta los valores deDamage
oRestoreAmount
, 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!