从无法访问的项目Fork
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
# 资源按需加载概述 区别于原生 APP 游戏很少考虑场景内的资源规划问题,开发时通常将资源在游戏启动时全加载到内存中,而小游戏需要做到“即点即玩”,影响游戏的呈现速度因素中如首资源包的下载往往占比较大,因此需要根据场景中的主次内容进行资源上的优化分包处理。 目前分包将基于 AA/AB 包的按需加载,以及 Unity Instant Game 三种方案。值得注意的是,微信小游戏环境中**不支持对本地的 Bundle 进行加载**,因此无论哪种方案最终都采用上传 CDN 方式在游戏运行时异步按需下载。 #### AA包、AB包、Instant Game 方案选择说明 > 相关手册:[AA(Addressable) 进行资源按需加载](UsingAddressable.md) 、 [AB(AssetBundle)进行资源按需加载](UsingAssetBundle.md) 、[Instant Game 实践指南](InstantGameGuide.md) AA/AB 包是常规的分包解决方案,关于他们的选择对于轻度游戏来说两者没有特别要求,倒是功能强大的 AA包 使用门槛更低一些,而对于重度游戏,平台目前所反馈到的结论是使用 **AB包** 的性能要比 AA包 更好,AA包较大项目时生成的未压缩的 catalog 较大,加载效率低,改用 AB包后,效果提升明显。 Instant Game 是由 Unity 官方提供的自动加载方案,有关 Instant Game 详细内容可查阅 **Instant Game 实践指南**,本节说明三种方案的差异: | | 常规资源加载方案(AA/AB包) | Instant Game 工具 | | -------------- | --------------------------- | ------------------------------ | | 技术原理 | 基于 AA/AB 包的异步资源管理 | Unity引擎底层资源异步加载策略 | | 引擎版本 | 不限制 | 目前需指定版本 2021.2.5 | | 转化人力 | 适中 | 较少/适中 | | 懒加载资源类型 | 常见纹理资源 | 纹理、模型、骨骼动画、音频资源 | | 自选CDN | 支持 | 不支持(需使用腾讯云CDN服务) | | 必要的代码修改 | 通常需要适配 | 较少/达到最佳仍需要 | | 首资源包处理 | 通常需要适配 | 默认不需要/达到最佳仍需要 | **选择建议:** - 游戏工程本身已采用完善的 AA/AB 资源管理,建议继续沿用常规资源加载方案,且有助于后续压缩纹理等优化工作的进行有效提升游戏运行性能; - 原生 APP 版本游戏完全没有做资源的拆包,希望减少游戏的转化周期,使用 Instant Game 方案可以快速完成转化工作。 ###