接入指南 API 工具 其他

微小转化工具

目前微信小游戏一键转换工具已支持 COCOS、Laya、白鹭、Unity 等所有游戏引擎,除 Unity 需要做插件 SDK 及引擎版本特殊要求外,其他游戏引擎可以用快游戏联盟开发者工具一键转换,只需适配 js 中平台接口(账号、支付)就可以完成转换

一、功能介绍

通过使用快游戏联盟开发者工具,可一键将微信工程转换为快游戏,本方案目的是加快微信小游戏适配联盟平台的时间。针对 Cocos、Laya、白鹭等引擎一键导出为微信小游戏工程的基础上,提供便捷工具,高效快速的将微信小游戏工程转换为快游戏 RPK,可直接进行调试打包。

转换原理【COCOS/laya 等普通小游戏】

微信与联盟平台都是通过模拟一些游戏常用的 WEB 标准的 JavaScript API,来实现小游戏的运行,底层使用 v8 来执行 JS 代码,支持 WebGL 渲染、Canvas 文字绘制、音频以及网络等。

使用 Cocos、Laya 等游戏引擎导出为微信小游戏,会生成 wechatgame 工程,代码包含游戏逻辑及微信平台适配逻辑,转换工具会将微信平台适配逻辑替换为适配层代码,模拟微信 wx 相关 API,支持微信小游戏运行。

【微信/联盟】Unity 小游戏转换原理

微信 Unity 小游戏有自己的一套插件代码,微信 Unity 插件会将 Unity 游戏导出为 WebGL 工程,然后再转换到微信工程,原理基于 WebAssembly,可在浏览器环境中运行。

联盟与微信类似,支持 Unity 游戏转换到 WebGL 工程,基于 WebAssembly 来运行小游戏。基于此,Unity 微信小游戏可以支持一键转换到快游戏。

Unity 小游戏一键转换,支持微信 wasm 分包等功能,微信的 unity 优化可以直接迁移到联盟工程内

Unity 小游戏启动转化优化

由于 Unity 插件导出的小游戏包体大小较大,目前分包在 30MB 左右,线上平均网络速度 1-2Mb/s,Unity 小游戏启动,需要将主包+分包(30Mb)都下载下来,才能正常渲染画面,以线上网速大概需要 15~30s,耗时较长

优化建议:降低包体大小

  • 通过自身裁剪资源等手段降低导出的包体大小,否则线上加载转化肯定较低
  • 可以使用微信 wasm 分包功能,然后再通过微信一键转换来导出为联盟工程,导出后的联盟工程支持微信对于 unity 的各种优化

联盟目前没有 wasm 分包的能力,因此可以通过微信 wasm 分包,再通过一键转换导出联盟工程,降低包体大小

二、开始使用

环境要求

  • 下载快游戏开发者工具后,选择项目路径,即可导入微信工程项目。

  • 当游戏工程被检测到是微信工程时,会显示一键转换按钮,点击立即转换之后即可开始进行微信快游戏工程和联盟快游戏工程的一键转换,只有项目工程是微信工程时展示此按钮

三、微信小游戏转换后适配说明(COCOS、Laya、白鹭等可参考以下适配)

与微信小游戏差异

微信小游戏一键转联盟快游戏后,运行环境内的 window.wx 变量使用联盟的 window.qg 兼容实现,仍有部分无法完全兼容。

微信的大部分接口都做了兼容处理,若游戏有特殊逻辑必须要接入某个微信功能,可以单独测试下~

判断运行环境是否为快游戏?

// 判断是否是小游戏环境
if (window.qg) {
  console.log("该运行环境为小游戏");
}

不支持的微信小游戏 API

  • 转发、加密
  • 数据分析
  • 鼠标与滚轮
  • 蓝牙相关
  • 视频、录音与相机(用法有差异)
  • 实时语音、游戏服务、第三方平台
  • 开放数据与开放数据域
  • 云开发
  • 游戏圈、视频号、微信运动与微信群
  • 客服消息、订阅消息、卡券
  • 人脸检测、AI 推理、对局回放
  • Worker
  • UDPSocket

需要单独适配的 API

  • 虚拟支付:接入支付
  • 用户信息、登陆授权:接入账号
  • 广告:可在 manifest 配置广告位 ID,直接进行拉取

说明

  • 以上列的并非全部的 wx API 不支持项,未实现的会在调试中打印相关日志。
  • 如果有调用相关未实现的接口导致游戏异常,可在 src/wxadapter 目录下 wxapi-adapter.js 结尾加入 global.wx.xxx = () => {}即可。

不支持的 API 详细列表下载

注意事项

  • laya 转换时需要将配置项:useRetinalCanvas 设置为 true,否则在分辨率大于 1080 的机型上会显示异常

平台能力接入(账号、支付、广告)

登录和支付需要服务器接入,无法直接通过 qg 来兼容。开发者可通过接入统一 SDK后能更快的实现登录、支付与广告功能,建议采用统一 SDK 方式接入。

四、Unity 微信小游戏转换说明

快游戏联盟开发者工具支持的 unity 微信小游戏工程转换

建议使用微信 Unity 低于 1.2.32 版本的插件来适配,减少一些高版本问题,1.2.31 版本微信插件

微信 Unity 插件

通过 开发者工具可将微信 Unity 工程转换到 联盟工程,由于微信 Unity 工程代码是基于 Unity 引擎插件来运行,若有问题可以联系技术反馈解决。

建议先用小游戏包内的方式来转换,若 cdn 方式出现问题,可更新最新脚手架来解决~

Unity 小游戏性能优化

参考微信 Unity 性能优化建议,例如使用 wasm 分包、纹理压缩等,将包体降低到最小,有利于启动转化率的提升。然后再通过一键转换工具,可将微信优化后的包体迁移到 vivo 平台使用。

微信 Unity 平台接口适配说明

开发者需要适配一些特殊的平台功能,比如账号、广告、支付等可以参考统一 SDK

可以使用联盟提供的平台接口 SDK 进行接入,将插件导入 Unity 工程中,Unity 插件下载

更多 SDK 接口功能详见:使用文档《unity 游戏适配 C#SDK 教程》

条匹配 "" 的结果

    没有搜索到与 "" 相关的内容