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

Editor windows: agregando funcionalidades

19/20
Recursos

¿Cómo mostrar información de un 'item' en Unity?

Para mostrar la información de un 'item' en Unity, es crucial no solo obtener el 'current item' sino también asegurarse de que no sea nulo. A partir de aquí, se puede empezar a dibujar en la interfaz, creando una nueva área basada en la posición de una existente. Es importante verificar la nulidad del item antes de continuar, asegurando una interfaz más robusta.

¿Cómo definir un área de edición para los items?

  1. Crear una nueva rectángulo, item edit rec, vacío con coordenadas específicas.
  2. Establecer la posición utilizando la propiedad xmax del área de scroll anterior.
  3. Ajustar el tamaño restando el width del scroll, maximizando el uso del espacio disponible con márgenes definidos a gusto.
  4. Probar la visualización utilizando un botón de prueba dentro de la GUI.
var itemEditRec = new Rect(new Vector2(scrollRec.xMax, scrollRec.yMin), new Vector2(scrollWidth / 3, 200));

¿Cómo se configuran áreas en Unity?

Una vez definida nuestra nueva área, se puede proceder a trabajar con un Backing Area en Unity. Para mostrar propiedades se utiliza un Serialize Object, lo cual facilita manejar y exponer los datos que sean inherentes a nuestras propiedades de item.

var so = new SerializedObject(currentItem);
var property = so.FindProperty("item");

¿Cómo modificar propiedades específicas en el UI?

Modificar ciertas propiedades sin permitir el cambio completo es fundamental para una buena experiencia de usuario. Aquí te muestro cómo lograrlo:

Desactivar cambios no deseados

Se utiliza la función de GUI.enabled para desactivar temporalmente la edición de ciertas propiedades, ofreciendo algo de control al usuario solo sobre elementos específicos.

GUI.enabled = false;
EditorGUILayout.PropertyField(property);
GUI.enabled = true;

Cambiar solo ciertos campos

  • Para el precio de un item, se puede usar un int slider, delimitando valores mínimos y máximos.
  • Para la descripción, se utiliza un text area, facilitando una vista y edición más extensa.
int price = EditorGUILayout.IntSlider("Price", currentItem.item.price, 100, 1000);
string description = EditorGUILayout.TextArea(currentItem.item.description);

¿Cómo manejar los cambios?

Unity permite un sistema de persistencia de cambios que es intuitivo y fácil de usar:

  1. Empezar y finalizar un check de cambios utilizando EditorGUI.BeginChangeCheck() y EndChangeCheck().
  2. Si hay cambios, se debe alertar sobre los cambios no guardados usando EditorUtility.SetDirty(currentItem).
  3. Implementar la función Undo.RecordObject() para permitir deshacer cambios accidentales.
EditorGUI.BeginChangeCheck();
// Cambios en las propiedades
if (EditorGUI.EndChangeCheck())
{
    Undo.RecordObject(currentItem, "Changed Price or Description");
    currentItem.item.price = price;
    currentItem.item.description = description;
    EditorUtility.SetDirty(currentItem);
}

Explorando y configurando adecuadamente la edición de items en Unity permite una flexibilidad y eficiencia esenciales para cualquier proyecto. Aprovecha estas herramientas y sigue experimentando para optimizar tu flujo de trabajo.

Aportes 0

Preguntas 1

Ordenar por:

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