随着更多手游团队进入小游戏平台, 我们发现,在近半年的推广产品中,微信小游戏平台中使用 Unity 进行开发的,表现流畅、画面精美的产品越来越多了。
微信小游戏 Unity WebGL 适配方案,基于 WebAssembly技术,可以在无需更换引擎与重写核心代码的情况下将原有 Unity 游戏项目适配到微信小游戏。
Unity WebGL 小游戏适配原理
Unity WebGL 小游戏适配原理图:来自微信官方文档
Unity 导出的 WebGL 包,基于 WebAssembly 技术,支持运行在浏览器环境。
微信底层提供了 WebAssembly 接口支持,打包工具提供了胶水层适配,最终让导出包运行在微信小游戏环境中。
对微信小游戏对 Unity 的支持和限制
目前,微信小游戏对 Unity 的能力支持,已经很强大了,曾老师关注这几点:
渲染接口当前仅支持WebGL1.0(相当于OpenGLES2.0),2.0 处于 Beta 测试。 在 iOS 14.5 以上,支持 PureTS JIT。 支持标准 Lua 与 xlua/tolua,不支持 LuaJIT。 不支持多线程,但可以使用异步。 不支持 System.File 接口,但可以使用 WX SDK 支持 200MB 存储(最高可以开通 1GB)。
由于小游戏生态玩家对于启动耗时更加敏感,以及 WebAssembly 算力与原生 APP 相比表现较弱, 作为 Unity 小游戏开发者,更应该关注性能与体验调优。
深度分析工具正式版
近期,微信小游戏平台推出了深度分析工具正式版,将工具完整无缝集成进入微信小游戏UnitySDK 官方版本中,进一步方便 Unity 开发者对小游戏进行性能分析和调优。
支持的 Unity 引擎版本:Unity 2021.2~2023.1
根据性能报告中的内存专项->资源列表页,观察内存占用数量。
在 内存专项 > Lua内存追踪 栏目下观看函数调用开销。
录制报告和重要事件标注
支持使用 WXPerfEngine.StartRecordManually
和 WXPerfEngine.StopRecordManually
方法,进行报告的录制。
支持使用 WXSDKPerf.WXPerfEngine.Annotation()
方法,进行重要事件的标注。
#if ENABLE_WX_PERF_FEATURE
WXSDKPerf.WXPerfEngine.Annotation("第一波怪物出生");
#endif
相关入口和文档
公众号MP平台查看入口:开发支持-->研发工具箱-->性能诊断-->深度分析
性能深度分析工具使用指南
https://wechat-miniprogram.github.io/minigame-unity-webgl-transform/Design/DeepProfileTool.html
微信小游戏性能分析工具使用文档
https://doc.weixin.qq.com/doc/w3_AOEA3AZ-ACcWHpBCbiHSfagf1JFKZ
优化实战:使用性能深度分析工具定位热点
https://doc.weixin.qq.com/doc/w3_AOEA3AZ-ACcPbQwJMi2SEmLa0mc4W
来胡扯游戏行业群,一起聊天!
有很多重要内容,公众号发不了,但群里特别能聊。
群里有独立开发者,游戏公司创始人、大厂负责人、量子理论研究者……
关注公众号可以进群一起唠嗑,独立游戏、商业游戏、流量游戏、研发、投放、发行、运营、招人 都能聊,纯唠嗑也欢迎。
胡扯游戏资源库
https://docs.qq.com/aio/DVUZDS0pTZnFGTVNv
这些技术文章值得读一下:
都刷到这里了,不来个「点赞」「分享」「在看」一键三连吗?