Table of Contents

Diagnosticar y solucionar: el contenido no aparece 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 AR. Puede originarse en varias etapas, desde la propia localización Mega hasta su lógica de renderizado.

Este artículo le guiará para diagnosticar y resolver este problema de forma sistemática.

Flujo de diagnóstico: de externo a interno

Seguir el principio de "primero externo, luego interno" permite localizar el problema de forma eficiente. Ejecute los siguientes pasos en orden:

Paso 1: usar herramientas externas para verificar el estado de localización Mega (sin modificar código)

Antes de profundizar en el código de su aplicación, confirme primero si el servicio de localización Mega funciona normalmente. Este es el paso más crítico y ayuda a determinar si el problema está en la propia localización Mega o en la integración de desarrollo de la aplicación, como el renderizado.

  1. Usar Mega Toolbox (móvil)

    • Instale Mega Toolbox App en el teléfono de prueba si aún no está instalada.
    • Abra la App y entre en On-site verification and diagnosis tool.
    • Inicie sesión en su cuenta y seleccione la misma biblioteca de localización que usa su aplicación.
    • Lleve el teléfono a la misma ubicación donde la aplicación no puede mostrar contenido durante la prueba.
    • Observe el resultado:
      • Si Toolbox localiza correctamente (la interfaz muestra el estado Found): enhorabuena. El servicio de localización Mega funciona normalmente. El problema está dentro de su aplicación, especialmente en la lógica de renderizado y visualización de contenido. Vaya al Paso 2.
      • Si Toolbox falla al localizar (la interfaz muestra NotFound u otro estado): el problema está en el propio servicio de localización. Consulte la siguiente sección para un análisis más profundo.
  2. Usar simulación en PC (si ya se adquirió EIF)

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

Paso 2: comprobar la lógica interna de renderizado y contenido de la aplicación

Si el Paso 1 confirma que el servicio de localización Mega funciona normalmente, el problema está en el código de su aplicación. Compruebe lo siguiente:

  1. Si el contenido está colocado bajo el nodo correcto:

    • ¿Ha colocado correctamente los objetos 3D bajo los nodos MegaBlocks > Block_* generados automáticamente por la herramienta?
    • Compruebe la relación jerárquica entre el contenido y los nodos Block para asegurarse de que el contenido virtual se renderiza en la posición correcta en tiempo de ejecución.
  2. Si el Block Root de MegaTracker está configurado correctamente:

    • Expanda AR Session y compruebe si Block Root en Mega Tracker es el nodo MegaBlocks generado por la herramienta.
  3. Si los nodos MegaBlocks han sido modificados:

    • Asegúrese de que no se hayan modificado los nombres de los nodos Block_* ni ningún valor en las propiedades local transform.
  4. Si la escucha de eventos es correcta:

    • ¿Ha modificado la lógica de tratamiento del callback de localización de MegaTracker?
    • ¿Su código instancia o muestra contenido virtual solo después de que se dispare el evento de estado de localización correcta?
  5. Renderizado en visor y transparencia:

    • ¿Su objeto virtual está oculto por otros objetos? Compruebe la render queue y el Shader.
    • Si usa un dispositivo VST (video see-through), compruebe si el renderizado está correctamente superpuesto sobre el flujo de video.
    • Si usa un dispositivo OST (optical see-through), compruebe si el contenido no se ve claramente porque la luz ambiental es demasiado intensa.
  6. Problemas del propio contenido:

    • ¿El Prefab que instancia tiene problemas? Por ejemplo, archivos de modelo faltantes, errores de Shader, escala 0, etc. Intente colocar manualmente el mismo objeto en la escena y compruebe si puede mostrarse normalmente.

Análisis de causas comunes de fallo de localización y sugerencias de mejora

Si en el Paso 1 Mega Toolbox tampoco puede localizar, revise y resuelva cuidadosamente el problema de localización. Estas son causas comunes y contramedidas:

  • Causa 1: el mapa no coincide con el entorno
    El entorno físico ha cambiado mucho en comparación con el momento de adquisición y mapeo, o el área de experiencia no se cubrió durante la adquisición, o el mapa en sí es incorrecto.
    Sugerencias de mejora:

    • Asegúrese de que el mapa cargado en su biblioteca de localización sea coherente con el espacio físico actual en cuanto a escena.
    • Si el entorno se ha modificado, como renovación o cambio de exposición, debe volver a adquirir y generar el mapa.
    • Si el área problemática no se cubrió durante la adquisición y el mapeo, regenere el mapa mediante actualización incremental.
  • Causa 2: entorno de inicialización deficiente
    La aplicación se inicia en una zona con poca textura, como una pared de color sólido o apuntando al suelo.
    Sugerencias de mejora:

    • Guíe al usuario para iniciar la aplicación en una zona con textura rica, ayudando al sistema a completar rápidamente la localización inicial.
    • Proporcione indicaciones claras en la UI de la aplicación, como "Levante el teléfono y mire alrededor".
  • Causa 3: problemas de red o servicio
    La latencia de red causa timeout en la solicitud del servicio de localización, o el servicio de localización tiene una falla, o se supera el límite de uso concurrente. Para estos últimos casos, envíenos feedback oportunamente.

  • Causa 4: se alcanza el límite de capacidad del algoritmo
    La localización Mega se basa en computer vision, AI y otros algoritmos avanzados, pero no es omnipotente y tiene ciertos límites de capacidad. Cuando la localización falla de forma continua en ciertas escenas o puntos, puede enviarnos feedback mediante grabación de pantalla, grabación de datos EIF, etc., para ayudarnos a mejorar e iterar continuamente los algoritmos.

Además, debe señalarse que la localización Mega requiere un proceso, normalmente de unos 1-2 segundos. Considerando la complejidad de escenas reales, como congestión de red, alta concurrencia, calentamiento del teléfono y reducción de frecuencia, este tiempo puede ser mayor. Por tanto, puede diseñar una pantalla clara de carga/espera en la aplicación que indique "Localizing...", evitando que el usuario piense erróneamente que el servicio está caído o que no se encuentra la localización por esperar.

Nota
  • La primera localización suele ser más lenta que las posteriores, porque el sistema debe cargar el contenido correspondiente después de la primera localización correcta. Es normal.
  • Mover rápidamente el dispositivo puede causar pérdida de localización. Guíe al usuario para mover el dispositivo suavemente.

Resumen y mejores prácticas

  • Verifique siempre primero con herramientas externas: esto reduce más rápido el alcance del problema a "localización" o "renderizado".
  • Establezca expectativas razonables para el usuario: use indicaciones de UI para que el usuario sepa que la localización necesita tiempo y guíelo a un entorno adecuado.
  • Preste atención a la lógica de contenido: asegúrese de que configuraciones como content binding sean correctas.
  • Use bien los logs: imprimir logs en puntos clave, como disparo de eventos, obtención de pose y estado de respuesta, ayuda a localizar rápidamente problemas de lógica de código.

Con el diagnóstico sistemático anterior, debería poder resolver la mayoría de los problemas de "contenido no aparece". Si el problema persiste, prepare datos EIF y logs, y envíenos un informe detallado mediante Issue report.