FAQ & Resolução de Problemas
Esta secção recolhe respostas às perguntas mais frequentes e soluções para problemas típicos encontrados durante a otimização de WebGL.
Instalação e Cena de Demonstração
P: Eu abri a cena de demonstração, mas todos os materiais e objetos estão cor-de-rosa!
R: O seu projeto usa URP, enquanto a cena de demonstração é configurada por padrão para BiRP. Simplesmente extraia o pacote localizado em WebAdaptivePerformance/Demo/Import Me (URP).unitypackage. Os shaders serão atualizados automaticamente.
P: Instalei o plugin, mas visualmente, absolutamente nada muda no jogo.
R: Analise a seguinte checklist:
- O plugin está ativado em Project Settings? Os Scalers estão adicionados e ativos?
- Os gráficos do Unity estão originalmente configurados no máximo? O plugin não tem nada a reduzir se as configurações já forem baixas.
- Talvez o dispositivo lide perfeitamente com a carga, e o FPS seja estável. Adicione o prefab
Dashboardà cena para observar as decisões em andamento do Indexer. - Se tudo estiver configurado corretamente mas não há efeito — contacte-nos e nós iremos ajudar com a resolução de problemas.
Resolução e Interface (UI)
P: A resolução não está a mudar (Resolution Scaler inativo).
R: As duas razões mais vulgares:
- Se está a usar BiRP e o modo
RenderTextureScaling: analise o arrayTarget Tagsnas configurações do Scaler. Se a câmara do seu jogo tiver um nome diferente (nãoMainCamera), precisa inserir a tag respetiva. Caso contrário, o plugin não conseguirá localizá-la. - O modo
NativeBrowserScalingapenas opera numa build WebGL renderizada final. Ele não faz nada no Unity Editor.
P: Quando os FPS descem, a minha UI também fica distorcida/turva!
R: Confirme se em BiRP, tem o RenderTextureScaling selecionado. O próprio Canvas necessita de ser definido em modo Screen Space - Overlay (ou use uma câmara dedicada só para a UI).
P: Botões UI normais funcionam bem, mas os meus cliques do rato (customizados) em objetos 3D estão errados.
R: Os eventos padrão de EventSystem são perfeitamente reparados pelo nosso componente WebScaledPhysicsRaycaster. Porém, se estiver a chamar raycasts manuais por código (Camera.ScreenPointToRay()), eles falharão a posição do clique porque a resolução da tela não corresponde à renderizada. Para este efeito aplique o método do nosso plugin: WebRaycasterUtility.TryComputeScaledRay().
Métricas e Comportamento do Sistema
P: A qualidade gráfica diminuiu por causa de atrasos. Atualmente, os FPS estão altos novamente, mas os gráficos não estão a recuperar!
R: É bastante provável que o Anti Yo-Yo Penalty System tenha sido ativado. O plugin bloqueou temporalmente melhorias visuais a fim de impedir instabilidade (Quality flickering).
- Se deseja que os gráficos se estabilizem com mais celeridade, reduza o limite do parâmetro
Penalty Lockout Duration(ex., passe para 10 segundos). - Reveja também o
Increase Cooldown— poderá possuir tempos de espera altos demais.
P: O Dashboard insiste num Gargalo de CPU (CPU Bottleneck) ou Unknown de forma continuada, apesar da cena estar limpa.
R: Não se esqueça de ativar as Frame Timing Stats no Player Settings. Posteriormente verifique de igual forma se o Application.targetFrameRate = -1. Ao retirar os travões ao refrescamento temporal, liberta e isola as métricas contra abrandamentos induzidos pelo setTimeout do navegador.
P: A minha personagem (ou os adereços físicos) engasgam-se ou dão soluços com "lags" fortes.
R: Isto resulta colateralmente devido à ativação forçada do Physics Step Scaler. Ele modula a base do Time.fixedDeltaTime por modo a prevenir colapsos na CPU perante sobrecargas drásticas de desempenho. Garanta e assegure transições puramente fluidas ativando de urgência a preferência (mode) de Interpolate residente na aba do componente Rigidbody de qualquer dos personagens da cena.
P: Os Shadow Scalers (Sombras) mantêm-se instigados, todavia a performance permanece decrescente e as sombras intactas.
R: Os ditos plugins supervisionam e operam apenas mediante reflexões dinâmicas diretas em tempo corrente (Realtime). Opcionalmente e sempre que uma configuração de "iluminação no mapa se apresente pré-calculada (Baked/Lightmaps)" esta permanecerá insensível.
Scalers Customizados
P: O meu próprio Scaler opera majestosamente no modo Editor, contudo na versão Build WebGL o mesmo pura e simplesmente "esfuma-se"!
R: Sob procedimentos internos normais o integrador de arquitetura IL2CPP aniquilou em escassa conformidade tal vertente por julgar constar código sem finalidade ("dead code"). Proceda na inclusão obrigatória mediante o prefixo de declaração (attribute) [UnityEngine.Scripting.Preserve] adjacente na margem cimeira a encabeçar a classe principal do Custom Scaler que criou.
