目前微信小游戏一键转换工具已支持 COCOS、Laya、白鹭、Unity 等所有游戏引擎,除 Unity 需要做插件 SDK 及引擎版本特殊要求外,其他游戏引擎可以用快游戏联盟开发者工具一键转换,只需适配 js 中平台接口(账号、支付)就可以完成转换
通过使用快游戏联盟开发者工具,可一键将微信工程转换为快游戏,本方案目的是加快微信小游戏适配联盟平台的时间。针对 Cocos、Laya、白鹭等引擎一键导出为微信小游戏工程的基础上,提供便捷工具,高效快速的将微信小游戏工程转换为快游戏 RPK,可直接进行调试打包。
微信与联盟平台都是通过模拟一些游戏常用的 WEB 标准的 JavaScript API,来实现小游戏的运行,底层使用 v8 来执行 JS 代码,支持 WebGL 渲染、Canvas 文字绘制、音频以及网络等。
使用 Cocos、Laya 等游戏引擎导出为微信小游戏,会生成 wechatgame 工程,代码包含游戏逻辑及微信平台适配逻辑,转换工具会将微信平台适配逻辑替换为适配层代码,模拟微信 wx 相关 API,支持微信小游戏运行。
微信 Unity 小游戏有自己的一套插件代码,微信 Unity 插件会将 Unity 游戏导出为 WebGL 工程,然后再转换到微信工程,原理基于 WebAssembly,可在浏览器环境中运行。
联盟与微信类似,支持 Unity 游戏转换到 WebGL 工程,基于 WebAssembly 来运行小游戏。基于此,Unity 微信小游戏可以支持一键转换到快游戏。
Unity 小游戏一键转换,支持微信 wasm 分包等功能,微信的 unity 优化可以直接迁移到联盟工程内
由于 Unity 插件导出的小游戏包体大小较大,目前分包在 30MB 左右,线上平均网络速度 1-2Mb/s,Unity 小游戏启动,需要将主包+分包(30Mb)都下载下来,才能正常渲染画面,以线上网速大概需要 15~30s,耗时较长
优化建议:降低包体大小
联盟目前没有 wasm 分包的能力,因此可以通过微信 wasm 分包,再通过一键转换导出联盟工程,降低包体大小
微信小游戏一键转联盟快游戏后,运行环境内的 window.wx 变量使用联盟的 window.qg 兼容实现,仍有部分无法完全兼容。
微信的大部分接口都做了兼容处理,若游戏有特殊逻辑必须要接入某个微信功能,可以单独测试下~
// 判断是否是小游戏环境
if (window.qg) {
console.log("该运行环境为小游戏");
}
登录和支付需要服务器接入,无法直接通过 qg 来兼容。开发者可通过接入统一 SDK后能更快的实现登录、支付与广告功能,建议采用统一 SDK 方式接入。
快游戏联盟开发者工具支持的 unity 微信小游戏工程转换
建议使用微信 Unity 低于 1.2.32 版本的插件来适配,减少一些高版本问题,1.2.31 版本微信插件
通过 开发者工具可将微信 Unity 工程转换到 联盟工程,由于微信 Unity 工程代码是基于 Unity 引擎插件来运行,若有问题可以联系技术反馈解决。
建议先用小游戏包内的方式来转换,若 cdn 方式出现问题,可更新最新脚手架来解决~
参考微信 Unity 性能优化建议,例如使用 wasm 分包、纹理压缩等,将包体降低到最小,有利于启动转化率的提升。然后再通过一键转换工具,可将微信优化后的包体迁移到 vivo 平台使用。
开发者需要适配一些特殊的平台功能,比如账号、广告、支付等可以参考统一 SDK。
可以使用联盟提供的平台接口 SDK 进行接入,将插件导入 Unity 工程中,Unity 插件下载
更多 SDK 接口功能详见:使用文档《unity 游戏适配 C#SDK 教程》