Introducción a las herramientas de desarrollo para videojuegos
Introducción
Qué son las herramientas de desarrollo
Herramientas más comunes en el mundo del desarrollo de videojuegos
Dibujando en el editor
Sistema IMGUI y Ciclo de vida de Editor
Controles: creando un botón
Creación de toolbar y gui
Gizmos
Handles
Prácticando en el editor
Shortcuts útiles del editor
Context Menus
Menu Item
Herramientas de Editor
Attributes y Property drawers
Iniciando nuestro custom Editor
Serialized properties
Optimizando nuestro custom editor
Guardar y cargar data de herramientas: json, scriptable objects, txt y csv
Encontrar assets para editor window
Editor windows: mostrando datos en el editor
Editor windows: agregando funcionalidades
Cierre del curso
Cierre del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Crear una ventana de Editor personalizada en Unity puede mejorar significativamente tu flujo de trabajo, permitiéndote agregar y visualizar información de manera más eficiente. En esta guía, exploraremos cómo desarrollar una herramienta que te permita gestionar datos dentro del editor de Unity, centrándonos específicamente en crear y manipular ventanas de editor.
Para comenzar, asegúrate de que todos los elementos que quieras personalizar dentro del editor estén ubicados en la carpeta "Editor". Esta práctica facilita que Unity no compile dicha carpeta para el build final, evitando potenciales errores. Ahora, procedamos a crear la ventana que nos ayudará a gestionar ítems de una base de datos.
Crear la ventana: Nombra la ventana como Item Editor Window
. Esta será tu interfaz personalizada para trabajar con ítems.
Importar las librerías necesarias: Asegúrate de importar la librería del Editor de Unity para acceder a las funcionalidades que necesitas.
using UnityEditor;
Para manipular los ítems, necesitas organizar tus scripts y datos correctamente. Vamos a utilizar ScriptableObjects
para este propósito.
Lista de ítems: Crear una lista genérica que almacene todos los objetos tipo ItemScriptableObject
. Ten en cuenta que esta lista se borrará cada vez que cierres la ventana del editor.
private List<ItemScriptableObject> items = new List<ItemScriptableObject>();
Ítem actual: Mantenlo dentro de la ventana como Current Item
para el ítem seleccionado.
Para abrir y mostrar la ventana en Unity, usaremos un menú del editor.
[MenuItem("Tools/Item/Editor Window")]
public static void OpenWindow() {
GetWindow<ItemEditorWindow>("Editor de Ítem");
}
private void OnEnable() {
Rect position = new Rect(Screen.width / 2, Screen.height / 2, 500, 500);
this.position = position;
}
Para manejar los datos de los ítems dentro de la ventana, necesitas cargarlos adecuadamente al abrirse la ventana. El método OnEnable
es perfecto para esta tarea.
Cargar los ítems desde el Asset Database: Utiliza el AssetDatabase
de Unity para obtener todos los assets según un tipo de filtro.
private void OnEnable() {
string[] guids = AssetDatabase.FindAssets("t:ItemScriptableObject");
foreach (string guid in guids) {
string path = AssetDatabase.GUIDToAssetPath(guid);
ItemScriptableObject item = AssetDatabase.LoadAssetAtPath<ItemScriptableObject>(path);
items.Add(item);
}
}
Este código busca todos los ItemScriptableObject
en el proyecto y los carga en la lista de ítems, permitiéndote manipularlos a través de la ventana personalizada.
Una Editor Window personalizada en Unity te permite tener más control sobre cómo manejas y visualizas datos de tu juego dentro del editor. Esto no solo mejora la eficiencia, sino que también permite una personalización más profunda, adaptando el editor exactamente a tus necesidades de desarrollo. Además, puede reducir errores asociados con la manipulación manual de datos.
Continúa explorando y perfeccionando tus habilidades en la creación de herramientas internas. Tu próximo paso es aprender cómo visualizar estos datos directamente en la interfaz de la ventana, lo que potenciará tu flujo de trabajo considerablemente. ¡Sigue adelante!
Aportes 0
Preguntas 0
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?