预下载
Unity 转微信小游戏,预下载是一个被官方文档主要提及的一个重要优化。链接
实现原理
预下载的原理其实很简单,用一句话概括就是
使用游戏进入流程中,CPU 处理密集的时段,开启网络下载,高效利用时间资源。
为什么要这样做?
根据统计数据反应,小游戏玩家对于游戏的启动时长是较为敏感的,过长的启动时间会导致用户的显著流失,因此如何快速呈现游戏场景是 Unity 原生 APP 游戏接入微信小游戏平台的一个重点优化的工作。
预下载只是启动时长优化的其中一个点,相关的其他优化还有:
- 首场景启动优化——首帧逻辑优化
- 压缩纹理资源
- WASM代码分包
- 封面图配置
在 Unity 中如何使用预下载?
具体操作详细请见 使用预下载功能
给转换插件一个文件列表,这个文件列表在启动游戏期间会预先下载
1、导出小游戏时候同时完成预下载文件列表的构建
2、运行时动态获取预下载文件列表
需要注意
- 预下载所有文件总体积应控制在合理范围内,通常可以3~5MB左右的内容。
- 文件数量应控制在10个以内,在此阶段最多只能允许10个并发,超过将会排队。
- UnityLoader插件已经考虑到业务会重复请求预下载的文件,游戏逻辑依然按未使用预下载的异步加载逻辑,无需做其他处理。如果预下载完成UnityLoader会立即构造网络数据返回,业务无感知。
- 添加到预下载列表中的文件,需是插件会自动缓存的文件,否则会导致下载浪费,预下载无效,详见资源缓存
- 会按照列表顺序发起预下载,请将优先需要的资源放到列表前面。
后记
预下载这样的设计同样适用于 Unity 制作的原生游戏,在游戏加载逻辑中,将需要的网络资源提前放到 CPU 密集处理的时段来,提高加载效率,减少进入游戏的时间是一个很好的思路。