No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Herramientas de Unity

Curso de Herramientas de Unity

Hederson Carrasquero

Hederson Carrasquero

Iniciando nuestro custom Editor

13/20
Recursos

¿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:

  1. Crear un nuevo Scriptable Object:

    • Ve a la carpeta en la que deseas almacenar tu objeto.
    • Haz clic derecho, selecciona CrearToolsScriptableItems. Aparecerá una nueva instancia que puedes personalizar.
  2. Modificar los atributos en el Inspector:

    • Asigna un DisplayName, selecciona un ItemType, elige un Icon y ajusta los valores de Damage o RestoreAmount, según corresponda.
  3. 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!

Aportes 3

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Comparto un enlace sobre los scriptableObjects. Enlace: <https://temas-gabriel.blogspot.com/2023/07/scriptable-objects-en-unity.html>

A y si puedes regalar tips para uno poder aprender de mejor manera, para uno poderlo aplicarlo.

Hola maestro me llamo Daniel, yo estaba ya hace mucho tiempo buscando un buen curso de programación de video juegos y de programación enfocado solo en unity, y veo que no fue una mala decisión, de Verdad muchas gracias, Bueno la única recomendación es colocar mas recursos, de resto todo esta cool