Skip to content

FAQ & Solución de Problemas

Esta sección recopila respuestas a las preguntas más frecuentes y soluciones a problemas típicos encontrados durante la optimización de WebGL.

Instalación y Escena de Demostración

P: ¡Abrí la escena de demostración, pero todos los materiales y objetos son de color rosa!

R: Tu proyecto usa URP, mientras que la escena de demostración está configurada por defecto para BiRP. Simplemente desempaqueta el paquete ubicado en WebAdaptivePerformance/Demo/Import Me (URP).unitypackage. Los shaders se actualizarán automáticamente.

P: Instalé el plugin, pero visualmente no cambia absolutamente nada en el juego.

R: Revisa la siguiente lista de verificación:

  • ¿Está habilitado el plugin en Project Settings? ¿Se agregaron y activaron los Scalers?
  • ¿Los gráficos de Unity están configurados inicialmente al máximo? El plugin no tiene nada que reducir si la configuración ya es baja.
  • Tal vez el dispositivo maneja la carga perfectamente y los FPS son estables. Agrega el prefab Dashboard a la escena para observar las decisiones en curso del Indexer.
  • Si todo está configurado correctamente pero no hay efecto, contáctanos y te ayudaremos con la solución del problema.

Resolución e Interfaz (UI)

P: La resolución no cambia (Resolution Scaler inactivo).

R: Las dos razones más comunes son:

  1. Si usas BiRP y el modo RenderTextureScaling: revisa el array Target Tags en la configuración del Scaler. Si la cámara de tu juego tiene un nombre diferente (no MainCamera), debes insertar esa etiqueta. De lo contrario, el plugin no podrá localizarla.
  2. El modo NativeBrowserScaling solo opera en una build de WebGL renderizada final. No hace nada dentro del Unity Editor.
P: Cuando bajan los FPS, ¡mi interfaz de usuario también se distorsiona/desenfoca!

R: Confirma que en BiRP tienes seleccionado RenderTextureScaling. El Canvas en sí debe estar configurado en el modo Screen Space - Overlay (o usar una cámara dedicada solo para la interfaz de usuario).

P: Los botones estándar de la interfaz de usuario funcionan bien, pero mis clics del ratón (raycasts personalizados) en objetos 3D fallan.

R: Los eventos estándar de EventSystem son reparados de manera perfecta por nuestro componente WebScaledPhysicsRaycaster. Sin embargo, si llamas a raycasts manuales por código (Camera.ScreenPointToRay()), fallarán la posición del clic porque la resolución de la pantalla no coincide con la renderizada. Con este fin, aplica el método de nuestro plugin: WebRaycasterUtility.TryComputeScaledRay().

Métricas y Comportamiento del Sistema

P: La calidad gráfica disminuyó debido a los retrasos. ¡Ahora los FPS son altos de nuevo, pero los gráficos no se recuperan!

R: Es muy probable que se haya activado el Sistema de Penalización Anti Yo-Yo. El plugin bloqueó temporalmente las mejoras visuales para evitar la inestabilidad (Quality flickering).

  • Si deseas que los gráficos se estabilicen más rápidamente, reduce el límite del parámetro Penalty Lockout Duration (por ejemplo, ajústalo a 10 segundos).
  • Revisa también el Increase Cooldown; podría tener un tiempo de espera demasiado alto.
P: El Dashboard indica de forma continua un Cuello de Botella de CPU (CPU Bottleneck) o Unknown, aunque la escena está vacía.

R: No olvides habilitar las Frame Timing Stats en Player Settings. Posteriormente, verifica si Application.targetFrameRate = -1. Al quitar los límites de la frecuencia de fotogramas, liberas y aíslas las métricas contra la desaceleración inducida por setTimeout del navegador.

P: Mi personaje (o elementos físicos) tartamudea o da tirones ("lags") fuertes.

R: Esto es un resultado colateral debido a la activación forzada del Physics Step Scaler. Este modula la base de Time.fixedDeltaTime para evitar bloqueos en la CPU ante sobrecargas drásticas de rendimiento. Asegura transiciones puramente fluidas activando inmediatamente el modo de Interpolate (o Extrapolate) que reside en la pestaña del componente Rigidbody del personaje.

P: Los Shadow Scalers (Sombras) están activados, pero el rendimiento sigue disminuyendo y las sombras permanecen intactas.

R: Estos módulos monitorean y operan únicamente sobre las luces y sombras dinámicas en tiempo real. Si la "iluminación en el mapa está precalculada (Baked/Lightmaps)", el plugin no tendrá ningún efecto sobre ella.

Scalers Personalizados

P: ¡Mi propio Scaler funciona de manera excelente en el modo Editor, pero en la compilación de WebGL simplemente desaparece!

R: En los procedimientos internos normales, el integrador de arquitectura IL2CPP aniquila ese código asumiendo que es código sin usar ("dead code"). Procede con la inclusión obligatoria a través del atributo [UnityEngine.Scripting.Preserve] en la parte superior, encabezando la clase principal del Custom Scaler que creaste.