未验证 提交 87b46de3 编写于 作者: ocean2o11's avatar ocean2o11 提交者: GitHub

Update ResourcesLoading.md

修改资源按需加载建议
上级 cdc2fee3
......@@ -29,24 +29,33 @@
### 各类型游戏的优化侧重点
### 各类型游戏的资源优化建议
​ 不同的游戏所需要的性能不尽相同,转化过程中的复杂度以及关注的侧重点自然也是不同的。游戏开发者可以根据自己游戏的类型进行不同的优化策略来提升实际的游戏体验,本节总结的列举开发者对不同类型的游戏应重点关注的优化内容。
- **休闲游戏**
#### 原生APP手游已使用 AB/AA 包等资源按需加载的游戏**
特点:游戏总包体积较小,“关卡”休闲类小游戏等。
**关注**:快速适配对微信API能力的接入,性能上重点对首场景启动优化,关卡分包加载(主关卡优先,后续关卡按需加载等)。建议[使用 Unity Instant Game 进行资源按需加载](InstantGameGuide.md)缩短转换周期。
特点:游戏原本发布原生 APP 平台,将游戏资源以 AA/AB 包方式存放于磁盘本地,在游戏运行时适宜的位置进行加载/卸载。
- **原生 APP 平台采用本地 AB/AA 包的游戏**
优化建议:
- 将 AA/AB 资源包使用CDN远程加载,及时卸载不再使用的资源包释放内存,同时结合[压缩纹理优化](CompressedTexture.md)减少包体积。
- 当APP异步方式使用AB时(如AssetBundle.LoadAssetAsync),调整为从UnityWebRequest下载创建AB即可,具体请参考[使用 AssetBundle 进行资源按需加载](UsingAssetBundle.md)
- 当APP同步方式使用AB时(如AssetBundle.LoadFromFile, AssetBundle.LoadAssetAsync),调整为UnityWebRequest异步接口创建AB,并使用LoadAssetAsync等异步接口。异步接口修改可能需要涉及到业务逻辑改造,工作量极大时也可结合[使用 Unity Instant Game 进行资源按需加载](InstantGameGuide.md)将部分资源自动剥离。
- AssetBundle无需再使用本地文件系统缓存和版本更新,小游戏适配插件已自动进行缓存,请参考[资源缓存](FileCache.md)
- 大型游戏不建议使用Addressable,因为当key达到几千个之后构建的资源索引文件(catalog)往往会非常大,对下载和解析造成较大压力。
特点:游戏原本发布原生 APP 平台,开发时为优化运行时内存,将游戏资源以 AA/AB 包方式存放于磁盘本地,在游戏运行时适宜的位置进行加载/卸载。
#### 原生 APP 手游未使用 资源按需加载 的轻度游戏
**关注**:将 AA/AB 资源包改用 CDN 远程加载,及时卸载不再使用的资源包释放内存,使用纹理压缩工具降低纹理资源大小提升渲染效率。AssetBundle无需再使用本地文件系统缓存和版本更新,小游戏适配插件已自动进行缓存,请参考[资源缓存](FileCache.md)
特点:游戏总包体积较小,“关卡”休闲类小游戏等。
- **大型无 AB 游戏**
优化建议:
- 快速适配对微信API能力的接入,性能上重点对首场景启动优化,关卡分包加载(主关卡优先,后续关卡按需加载等)。
- 建议[使用 Unity Instant Game 进行资源按需加载](InstantGameGuide.md)缩短转换周期。
#### 原生 APP 手游未使用 资源按需加载 的中重度游戏**
特点:游戏较大,但未使用 AA/AB 包方式进行分包管理,或较少使用,场景中必须与非及时资源在启动时一并加载。
**关注**:该类游戏需要耐心调优,重点关注游戏运行时的内存优化。需将游戏内资源逐一拆分,推荐使用 AB包 方式进行按需加载与及时资源释放,对多 Scene 时对后续场景使用 AA/AB分包方式载入,做好资源加载过程中的UI上的进度条反馈。推荐使用纹理压缩工具、WASM代码分包、资源预下载等能力优化,效果提升明显。
优化建议:
- 该类游戏需要耐心调优,需将游戏内资源逐一拆分,推荐使用 AB包 方式进行按需加载与及时资源释放,对多 Scene 时对后续场景使用 AA/AB分包方式载入。
- 做好资源加载过程中的UI上的进度条反馈。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册