En la lectura anterior exploramos la importancia de realizar pruebas de funcionamiento del código y pruebas con usuarios para garantizar que un proyecto cumpla con sus objetivos. Sin embargo, las pruebas son solo el primer paso; identificar errores y áreas de mejora es esencial, pero lo más importante es actuar para corregirlos y optimizar las funcionalidades. Aquí es donde entra el proceso de refinamiento.

En esta lectura, nos enfocaremos en cómo detectar y corregir errores en proyectos XR utilizando herramientas como el debugging y el Profiler de Unity. También veremos cómo la comparación entre la Ventana de Escena y la Ventana de Juego puede ser clave para identificar errores visuales y de interacción. Finalmente, utilizaremos un ejemplo práctico del Huerto XR para mostrar cómo se puede aplicar este proceso de refinamiento de manera efectiva.

Detectar errores durante las pruebas técnicas y con usuarios es una tarea fundamental. En la lectura pasada les mostramos dos herramientas de Unity para hacer pruebas. Ahora, vamos a entrar en detalle sobre estas estrategias y herramientas.

El debugging es una técnica fundamental que te permite inspeccionar el comportamiento de tu código en tiempo real, ayudándote a identificar y solucionar errores de manera efectiva. En Unity, el debugging se realiza principalmente a través de Microsoft Visual Studio, el entorno de desarrollo integrado (IDE) que se conecta directamente con Unity.

Cómo utilizar debugging en Unity y Microsoft Visual Studio

  1. Preparar el entorno:

  1. Configurar puntos de interrupción (Breakpoints):

Los puntos de interrupción se utilizan, como su nombre lo indica, para detener la ejecución del programa en un punto específico del script, esto puede ser muy útil para identificar componentes críticos dentro de nuestro código, inspeccionar valores o evaluar comportamientos.

En este caso de ejemplo, el punto de interrupción te permitirá pausar la ejecución cada vez que encuentres un cultivo maduro y analizar el estado del programa justo antes de incrementar el contador.

  1. Iniciar el debugging:

  1. Inspeccionar valores y resolver problemas:

Imagina que, en tu Huerto XR, la UI que muestra la cantidad de tomates maduros no actualiza correctamente. Configurar un punto de interrupción en el método que actualiza el conteo y utilizar las herramientas de debugging puede ayudarnos a verificar el valor actual del contador, el alimento que se está utilizando y qué ruta recorrió el programa para llegar a ese punto en específico.

El Profiler de Unity es una herramienta integrada que te permite analizar el rendimiento del proyecto en tiempo real. Es invaluable para identificar problemas relacionados con el uso de recursos, tiempos de carga, y cuellos de botella gráficos o de interacción.

Cómo activar y usar el Profiler en Unity

  1. Abrir el Profiler:

  1. Ejecutar el proyecto con el Profiler activado:

  1. Interpretar los datos:

  1. Optimizar el proyecto:

Retomando el ejemplo del Huerto XR, imagina que la tablet presenta retrasos al contar los tomates maduros. Abre el Profiler y examina la categoría UI para analizar si el problema está relacionado con el procesamiento gráfico de la tablet o con la lógica del código que actualiza los conteos. Ajusta el código o las animaciones según sea necesario.

Comparando la Ventana de Escena y la Ventana de Juego

Unity proporciona dos vistas principales para trabajar con proyectos: la Ventana de Escena y la Ventana de Juego. Compararlas puede ser muy útil para identificar errores relacionados con la disposición de objetos o la interacción.

Caso de uso:
En Unity, organiza tus ventanas de tal forma que puedas ver al mismo tiempo la ventana Escena y la ventana Juego. Posteriormente, ejecuta tu Huerto XR. Al estar en ejecución, puedes hacer cambios que no se van a guardar dentro de tu proyecto final. Puedes aprovechar ambas ventanas para, por ejemplo, cambiar la posición de objetos y evaluar cómo lo verá tu usuario final; o ver si el objeto player está ingresando en una zona de trigger para hacer el seguimiento de una funcionalidad. La ventaja de hacer esto último, es que puedes ver los coliders y como colisionan, o puedes ver que ocurre con los objetos desde sus componentes, como la Transformada.

Una vez identificados los errores, es momento de corregirlos. El refinamiento no solo se trata de resolver bugs, sino también de optimizar el código y mejorar la experiencia del usuario. Aquí hay algunas estrategias clave que puedes tener en cuenta:

  1. Revisar las interacciones esenciales:
    Prioriza las funcionalidades principales de tu proyecto y asegúrate de que operen sin problemas. Por ejemplo, verifica que los botones de la tablet en el Huerto XR respondan rápidamente y cuenten correctamente los tomates.
  2. Optimizar el rendimiento:
    Utiliza el Profiler para identificar procesos que consumen demasiados recursos y optimízalos. Esto puede incluir reducir la cantidad de polígonos en los modelos 3D o limitar el número de luces dinámicas. Por ejemplo, puedes considerar utilizar modelos Low Poly dentro de tus proyectos, tal como vimos en el curso de Desarrollo XR en Unity para todos.
  3. Iterar sobre el diseño visual y de interacción:
    Si los usuarios encuentran confusa una funcionalidad, considera ajustar los elementos visuales o simplificar la interacción. Por ejemplo, si los usuarios no saben cómo almacenar frutas en la caja del Huerto XR, podrías añadir una guía visual o simplificar el proceso de arrastrar y soltar. Si el problema se trata sobre la accesibilidad a la caja puedes considerar en agregar unas escaleras.

Imaginemos que estás probando tu proyecto de Unity y encuentras los siguientes problemas. Antes de leer la solución, piensa qué podrías hacer para identificar y corregir estos errores utilizando las herramientas que te presentamos en esta lectura.

  1. El letrero de la caja no actualiza el conteo de frutas correctamente.

¿Qué podrías hacer?

  1. La tablet que cuenta los tomates tiene retrasos al actualizar los datos.

¿Cómo identificas el problema y planteas formas de resolverlo?

  1. Los árboles frutales no generan frutas en la posición correcta.

¿Cómo verificarías la posición de los árboles?

Listo! Ya conoces algunas herramientas y métodos para hacer pruebas de tu aplicación, es hora de que hagas el refinamiento necesario, de acuerdo con tus hallazgos y los resultados de tus pruebas. Recuerda que cuando hablamos de "refinamiento", nos referemos a mejorar las funcionalidades o hacer nuevas implementaciones de ser necesario. Por ejemplo, mejorar su aspecto visual y comportamiento, o agregar la detección de otros eventos... Todo esto según sea necesario y detectado en las pruebas.