简介
微信小游戏环境与浏览器环境类似,但又不完全一样。为了更好地支持微信小游戏开发(环境适配、性能优化),Unity为微信小游戏做了特殊的支持与优化(当前版本:2021.2.5f1c303(团结backport)):
- 优化运行时内存
- 优化IL2CPP运行时内存(案例1: 63.9M->33.1M, 案例2: 11.1M->6.5M)
- 提高DynamicVBO对象池复用(针对某些案例,可以大大降低粒子内存开销)
- 优化绘制
- 支持WASM SIMD指令,提升向量计算的性能,对mesh skinning有一些提升(案例:200个charactor,总计200万左右顶点,Skin weights为4,在iphone12上frame time从50ms提升到32ms)
- 在WebGL2上支持GPU Skinning(提高帧率、缓解发热)
- Shader相关优化(URP项目开启WebGL via Metal时,某些案例帧率可提高一倍以上)
- 优化渲染管线,减少不必要的GL调用
- 提高资源复用率,降低带宽及功耗
- 优化异常处理
- 加速游戏启动
- 降低每帧CPU开销,减少不必要的wasm<->js相互调用
- 资产轻量化
- unity default resource: 3.5M->0.4M
- 支持微信宿主提供中文字体
- 增强Memory Profiler功能
- 为Detailed View增加MemLabel选项
- 支持统计Il2Cpp运行时内存
- 在WebGL平台增强AssetBundle内存统计,可以看到更完整的内存占用
- 新增实用工具
- AutoStreaming,自动拆分资源,自动按需下载
- 模型导入默认材质替换工具,剔除AssetBundle中残留的大量重复的默认材质
- AB依赖分析工具,帮助分析、优化AssetBundle分包
- 简化小游戏打包操作
- 与微信小游戏SDK互动,自动填写参数,上传CDN文件
- 其他
- 优化UnityWebRequest,跳过url正则检查
详见: Release notes
特别说明:2021版本这些支持/优化还在WebGL平台上。团结引擎 新增专属 微信小游戏平台,支持Dotnet Wasm,以及更多的性能优化和Profiling功能;支持Android,iOS等更多平台,版本持续迭代更新。
案例
我叫MT2(回合战斗) | 旅行串串(休闲) | 谜题大陆(SLG) | 热血神剑(MMO) |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
更多案例参见https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/blob/main/Design/ShowCase.md