性能优化总览
为何需要进行性能优化?
Unity WebGL导出形式相对于原生APP应用,需要开发者更关注性能与体验调优。有以下几点原因:
- 小游戏天生为"即开即用",在小游戏生态下玩家对启动耗时更敏感。
- Unity WebGL底层基于WebAssembly,算力不及原生APP。
- Unity并未对WebGL平台做特别裁剪,启动较慢。
因此,相对于原生APP,无论从启动还是运行上我们都需要做进一步性能优化。
优化措施
1 推荐Unity版本
强烈建议使用unity 2021及以上版本,支持wasm函数缩减及资源纹理ASTC压缩模式。
2 定制启动封面
由于Unity WebGL启动加载需要一定时间,因此需要使用视频或图片等内容作为过渡以留住玩家。可参考本文提供的定制启动封面方案。
3 包体大小限制
小游戏启动速度主要影响之一就是包体资源大小,为获得更好的游戏体验,需要对资源本身做一些的限制和优化,详见包体限制及优化。
更多信息请阅读:
4 资源按需加载
相比常规小游戏,unity游戏包体较大,无法满足平台包体限制(目前上架审核会限制4M大小)。可参考资源按需加载,优势如下:
- 首包小,满足平台对于包体限制的要求
- 加载过程可以自定义游戏画面,提升下载包体过程中的游戏体验
更多信息请阅读:
5 优化Unity游戏IndexedDB的适配逻辑
Unity游戏自有的API 如 PlayerPrefs的使用在导出WebGl时,会存储在浏览器的IndexedDB中,在小游戏环境中并无此功能,之前的脚手架版本(cli1.5.2-alpha.0及以下)适配的逻辑过于消耗性能,新版脚手架及C# SDK解决了此适配场景,C# SDK提供了一套PlayerPrefs实现,可无需修改代码进行适配 。