AssetBundle 冗余:为什么一张贴图会被打包六次

发布时间:2026/9/7 15:07:42
AssetBundle 冗余:为什么一张贴图会被打包六次 开场:删掉冗余之后,加载变慢了,还出现了粉色贴图某射击手游包体 1.2GB,超了渠道限制。排查发现一个惊人的数字:包内实际资源总量(去重后): 480 MB 所有 AssetBundle 解包后总量: 1.24 GB ↑ 冗余率 61%其中最夸张的一项是那张全局共用的枪械金属材质贴图(8MB),它被完整地打进了37 个 bundle——因为 37 把枪各自一个 bundle,而这张贴图谁都在用。团队做了看起来完全正确的事:把所有共享资源抽出来,单独打成共享包。结果:优化前 优化后 包体 1.24 GB 0.63 GB ✅ 砍掉一半 Bundle 数量 180 个 2,400 个 ⚠️ 首次进入战斗耗时 6.2 s 8.7 s ❌ 变慢 40% 首包下载量 — 反而变大 ❌ 线上崩溃 — 出现"粉色贴图"+ 闪退 ❌三个新问题,一个比一个难解释。原因不复杂,但需要先接受一个反直觉的前提:AssetBundle 冗余不是 bug,是 Unity 打包的默认行为。而"消除冗余"的代价是引入耦合—