UI/HUD 美术资源载入慢(红蓝球与底栏有约 2 秒纯色占位回退),需预烘焙合并图集并消除首帧延迟 #134
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题描述
参考截图:https://screenshot-v2.corp.google.com/0surpevfmm1i0
进入游戏场景时,底部红球、蓝球、技能图标、腰带及控制栏需要约 2 秒左右才载入完毕,期间渲染了纯色椭圆/色块占位回退(Fallback)。
根因分析
HudManager.preload()在场景初始化时异步发起manifest.json请求,随后串行触发 15 张面板 PNG、6 张字体图集 PNG、12 张技能图标 PNG(共 34+ 个独立请求),与场景瓦片图集(atlas_0.png)及角色/怪物精灵图集争抢连接带宽。images.get("ctrlPnl")/globeLife/globeMana尚未解码完成前,HudManager.render()回退绘制了纯红/纯蓝几何圆与纯色方块。解决方案
scripts/pack-ui-assets.ts中,将底栏、红蓝球、左右哥特边框、角色/背包/任务/小站/储物箱/方块面板、所有按钮、27 个任务图标、技能图标、字体图集与全量物品图标合并预烘焙为单张public/ui/ui_mega_atlas.png,并生成内联坐标元数据模块src/ui/baked-ui-meta.ts(零 JSON 瀑布流等待)。<link rel="preload">与首帧同步预解码:在acts.html中加入<link rel="preload" as="image" href="/ui/ui_mega_atlas.png">,并在首帧渲染前完成纹理位图预载,彻底消除 2 秒延迟与纯色回退块。验证通过并已随提交
14443c6修复关单改动方案:
scripts/pack-ui.ts离线解析 DC6/PL2/TBL,将底栏、红蓝球体、高光层、27 个任务图标、技能图标与物品图集统一预烘培至静态图集public/ui/与src/ui/baked-ui-meta.ts。getEmbeddedDropTables),彻底移除运行期对 MPQ/DLL 的 HTTP Range 依赖(0 请求)。验证结果:
*.mpq和*.dll文件的网络请求数为 0。tests/ui-hud.test.ts全数通过。