FAQ & 故障排除
本节汇编了在 WebGL 优化期间遇到的最常见问题的答案和典型问题的解决方案。
安装和演示场景
问:我打开了演示场景,但所有材质和对象都是粉红色的!
答: 您的项目利用了 URP,而演示场景默认配置为 BiRP。只需解压缩位于 WebAdaptivePerformance/Demo/Import Me (URP).unitypackage 的包即可。着色器将自动更新。
问:我安装了插件,但在视觉上,游戏绝对没有改变任何内容。
答: 查看此检查清单:
- 插件是否在 Project Settings 中启用?缩放器是否已添加且处于活动状态?
- Unity 图形最初是否设置为最大值?如果设置已经很低,插件就没有什么可降低的了。
- 也许设备毫不费力地处理了负载,而且 FPS 是稳定的。将
Dashboard预制件添加到场景中,以观察索引器当前的决策。 - 如果所有配置均正确但没有效果 — 请联系我们,我们将协助您进行故障排除。
分辨率和用户界面 (UI)
问:分辨率没有改变(Resolution Scaler 处于非活动状态)。
答: 两个最常见的原因:
- 如果您使用的是 BiRP 以及
RenderTextureScaling模式:检查缩放器设置中的Target Tags数组。如果您的游戏相机具有不同的名称(不是MainCamera),则必须输入其标签。否则,插件将根本无法找到它。 NativeBrowserScaling模式专用于构建完成的 WebGL 版本。它在 Unity 编辑器中不执行任何操作。
问:当 FPS 下降时,我的 UI 也变得模糊!
答: 确认在 BiRP 中,您选择了 RenderTextureScaling。Canvas 本身必须设置为 Screen Space - Overlay 模式(或使用专用的 UI 相机)。
问:标准 UI 按钮按下正常,但我对 3D 对象的自定义鼠标点击偏移了。
答: 标准 EventSystem 事件由我们的 WebScaledPhysicsRaycaster 组件自动修复。但是,如果您通过代码执行自定义射线投射(Camera.ScreenPointToRay()),它将由于纹理大小更改而错过目标。请利用插件的专用方法:WebRaycasterUtility.TryComputeScaledRay()。
指标和系统行为
问:由于延迟,图形质量降低。目前,FPS 再次变高,但图形并没有改善!
答: 可能是触发了 Anti Yo-Yo 惩罚系统。插件暂时阻止了升级以防止质量闪烁 (Quality flickering)。
- 如果您希望图形恢复得更快,请减小
Penalty Lockout Duration参数(例如,减小到 10 秒)。 - 另外,检查
Increase Cooldown参数 — 等待时间可能设置得太高了。
问:仪表板不断显示 CPU 瓶颈或 Unknown,即使场景是空的。
答: 确保在 Player Settings 中启用了 Frame Timing Stats。此外,验证 Application.targetFrameRate = -1。移除硬性帧限制可将指标从浏览器内人为的 setTimeout 延迟中解放出来。
问:角色或物理对象在严重延迟期间开始出现卡顿。
答: 这是 Physics Step Scaler 的副作用。它修改了 Time.fixedDeltaTime 以拯救处理器免受过载。为确保运动视觉上保持流畅,请在角色的 Rigidbody 组件上启用 Interpolate 模式。
问:启用了阴影缩放器,但性能并未提高,且阴影仍然存在。
答: 插件专门管理动态(实时)阴影。如果您场景中的照明是烘焙的 (Baked/Lightmaps),则缩放器将对其完全没有影响。
自定义缩放器
问:我的自定义缩放器在编辑器中运行完美,但在 WebGL 构建中却消失得无影无踪!
答: IL2CPP 编译器在构建过程中将其作为“死代码”剥离。请始终在您的自定义缩放器类上方应用 [UnityEngine.Scripting.Preserve] 属性。
