Table of Contents

Diagnóstico y reparación: problema de contenido no mostrado en la aplicación

"Puedo ver el mundo real, pero el contenido virtual no aparece." Este es uno de los problemas más comunes en el desarrollo de AR. Puede originarse en múltiples aspectos, desde el propio posicionamiento de Mega hasta su lógica de renderizado.

Esta guía le ayudará a diagnosticar y resolver este problema sistemáticamente.

Flujo de diagnóstico: de externo a interno

Siga el principio de "primero externo, luego interno" para identificar el problema de manera eficiente. Ejecute los siguientes pasos en orden:

Paso 1: Verificar el estado del posicionamiento de Mega con herramientas externas (sin modificar código)

Antes de profundizar en el código de su aplicación, confirme primero si el servicio de posicionamiento Mega funciona correctamente. Este es el paso más crítico, ya que le ayuda a determinar si el problema radica en el propio posicionamiento Mega o en la integración/desarrollo de la aplicación (como el renderizado).

  1. Usar Mega Toolbox (dispositivo móvil)

    • Instale la App Mega Toolbox en su teléfono de prueba (si aún no está instalada).
    • Abra la App, acceda a "Prueba de posicionamiento en sitio" o una función similar.
    • Inicie sesión en su cuenta y seleccione la misma biblioteca de posicionamiento que su aplicación.
    • Lleve el teléfono a la misma ubicación donde su aplicación no muestra el contenido.
    • Observe el resultado:
      • Si Toolbox se posiciona correctamente (el estado muestra Found en la interfaz): ¡Enhorabuena! El servicio de posicionamiento Mega funciona. El problema está dentro de su aplicación, específicamente en la lógica de renderizado y visualización de contenido. Vaya al Paso 2.
      • Si Toolbox falla al posicionarse (el estado muestra NotFound u otro en la interfaz): El problema está en el propio servicio de posicionamiento. Consulte la siguiente sección para un análisis más profundo.
  2. Usar simulación en PC (si se ha capturado EIF)

    • Si ha grabado datos EIF para esa escena, puede reproducirlos en el editor de Unity (PC) usando la herramienta de verificación de session.
    • Observe el resultado:
      • Si el posicionamiento tiene éxito durante la reproducción (el estado muestra Found en la interfaz): El problema está en su código de aplicación o en el entorno específico del dispositivo.
      • Si el posicionamiento falla durante la reproducción (el estado muestra NotFound u otro en la interfaz): El problema está en el propio servicio de posicionamiento. Consulte la siguiente sección para un análisis más profundo.

Paso 2: Verificar la lógica de renderizado y contenido dentro de la aplicación

Si el Paso 1 confirma que el servicio de posicionamiento Mega funciona, entonces el problema está en el código de su aplicación. Verifique los siguientes puntos:

  1. ¿El contenido está bajo el nodo correcto?:

    • ¿Ha colocado correctamente los objetos 3D bajo los nodos MegaBlocks > Block_* generados automáticamente por la herramienta?
    • Compruebe la jerarquía entre el contenido y los nodos Block para asegurarse de que la posición de renderizado del contenido virtual sea correcta en tiempo de ejecución.
  2. ¿Está configurado correctamente el Block Root de MegaTracker?:

    • Expanda AR Session, verifique que el Block Root en Mega Tracker apunte al nodo MegaBlocks generado por la herramienta.
  3. ¿Se han modificado los nodos MegaBlocks?:

    • Asegúrese de no haber modificado los nombres de los nodos Block_* ni ningún valor en sus propiedades local transform.
  4. ¿La escucha de eventos es correcta?:

    • ¿Ha modificado la lógica de manejo de las devoluciones de llamada (callbacks) de posicionamiento de MegaTracker?
    • ¿Su código instancia o muestra el contenido virtual solo después de que se active el evento de estado de posicionamiento exitoso?
  5. Renderizado del visor y transparencia:

    • ¿Su objeto virtual está siendo ocultado por otro objeto? Verifique la cola de renderizado (render queue) y los Shaders.
    • Si usa un dispositivo VST (video see-through), compruebe que su renderizado se superpone correctamente sobre el flujo de video.
    • Si usa un dispositivo OST (optical see-through), compruebe si el contenido es difícil de ver debido a una luz ambiental excesiva.
  6. Problema con el contenido en sí:

    • ¿El prefab que instancia tiene algún problema? Por ejemplo, falta de archivos de modelo, error en el Shader, escala a 0, etc. Intente colocar manualmente el mismo objeto en la escena para ver si se muestra correctamente.

Análisis de causas comunes de fallos de posicionamiento y sugerencias de mejora

Si en el Paso 1 descubrió que Mega Toolbox tampoco puede posicionarse, es necesario analizar y resolver el problema de posicionamiento. Aquí están las causas comunes y contramedidas:

  • Causa 1: El mapa no coincide con el entorno
    El entorno físico ha cambiado significativamente desde la captura y creación del mapa, el área de experiencia no estaba cubierta durante la captura, o el mapa en sí es incorrecto.
    Sugerencias de mejora:

    • Asegúrese de que el mapa cargado en su biblioteca de posicionamiento coincida con el espacio físico actual.
    • Si el entorno ha sido modificado (ej. reformas, cambio de mobiliario), necesita volver a capturar y generar el mapa.
    • Si el área problemática no estaba cubierta durante la captura inicial, necesita volver a generar el mapa mediante actualización complementaria.
  • Causa 2: Entorno de inicialización deficiente
    La aplicación se inicia en un área con poca textura (ej. paredes de color liso, apuntando al suelo).
    Sugerencias de mejora:

    • Guíe a los usuarios a iniciar la aplicación en áreas ricas en texturas para ayudar al sistema a completar el posicionamiento inicial rápidamente.
    • Proporcione instrucciones claras en la UI de la aplicación, como "levanta el teléfono y mira a tu alrededor".
  • Causa 3: Problemas de red o del servicio
    La latencia de la red provoca tiempos de espera (timeouts) en las solicitudes del servicio de posicionamiento, o el servicio en sí tiene una falla, o se supera el límite de uso concurrente, etc. Para este último caso, por favor contáctenos.

  • Causa 4: Límites de la capacidad del algoritmo
    El posicionamiento Mega se basa en algoritmos avanzados de visión por computadora e IA, pero no es infalible y tiene límites inherentes. Cuando se produzcan fallos de posicionamiento persistentes en ciertos escenarios o puntos, puede proporcionarnos comentarios mediante grabaciones de pantalla, captura de datos EIF, etc., para ayudarnos a mejorar e iterar continuamente los algoritmos.

Además, es importante destacar que el posicionamiento Mega requiere un proceso, normalmente de 1 a 2 segundos. Considerando la complejidad de los escenarios reales, como congestión de red, alta concurrencia o reducción del rendimiento del teléfono por calor, este tiempo puede ser mayor. Por lo tanto, es recomendable diseñar una interfaz de carga/espera clara en la aplicación, informando al usuario "Posicionando...", para evitar que el usuario piense que el servicio ha fallado o no puede posicionarse debido a la espera.

Nota
  • El primer posicionamiento suele ser más lento que los siguientes porque el sistema necesita cargar el contenido relevante tras el éxito inicial. Esto es normal.
  • Mover el dispositivo rápidamente puede causar pérdida de posicionamiento. Guíe a los usuarios a mover el dispositivo con suavidad.

Resumen y mejores prácticas

  • Siempre verifique primero con herramientas externas: Esta es la forma más rápida de reducir el alcance del problema a "posicionamiento" o "renderizado".
  • Establezca expectativas de usuario razonables: Mediante indicaciones en la UI, informe al usuario que el posicionamiento requiere tiempo y guíelo hacia un entorno adecuado.
  • Preste atención a la lógica del contenido: Asegúrese de que la vinculación de su contenido, etc., esté configurada correctamente.
  • Aproveche los registros (logs): Imprimir registros en puntos clave (como activación de eventos, obtención de poses, estados de respuesta) puede ayudarle a identificar rápidamente problemas en la lógica del código.

Siguiendo este diagnóstico sistemático, debería poder resolver la gran mayoría de los problemas de "contenido no mostrado". Si el problema persiste, prepare los datos EIF y los registros, y envíenos un informe detallado mediante la opción de Reportar problema.