游戏引擎适配方案
各引擎版本支持概况
游戏引擎 | 版本 | 是否支持 |
---|---|---|
Cocos Creator | v2.2.x | 是 |
v2.3.x | 是 | |
v3.0.x - v3.2.x | 不推荐使用 | |
v3.3.x以上 | 是 | |
Layabox | v2.1 | 是 |
v2.2 | 是 | |
v2.6 - v2.13 | 是 | |
v3.0.3 | 暂不支持 |
后端开放接口
所有依赖于后端开放接口的能力需要开发者重新进行兼容开发。需兼容的接口如下:
授权
bilibili 小游戏中需要用户信息可直接调用bl.getUserInfo
,若需要提前授权可调用bl.authorize
。
引擎导出项目的兼容
如果开发使用了 ES7 语法,特别是 async/await
的写法,必须在 game.js 开头引入以下文件:点此下载文件
Cocos 2.x 扩展插件自动适配方案
仅支持2.2.x及以上版本
下载bilibili小游戏转换插件 biligame-builder-2x(点击下载)
将下载好的文件,解压到项目目录中的 packages 目录下
- 转换bilibili小游戏前,需要先构建 微信小游戏 ,生成 wechatgame 目录
- 微信小游戏构建成功后,编辑器中打开插件:顶部菜单 -> 扩展 -> biligame-builder-2x -> open
- 插件打开后,点击开始构建
- 构建成功后,构建目录中,会生成biligame目录,使用bilibili小游戏开发工具打开即可
Cocos 2.x 手动适配方案
v2.2.x
- 通过编辑器导出成微信小游戏;
在 game.js 中添加 bl.launchSuccess();
用适配文件 index.js(点击下载) 替换导出游戏的根目录下的 libs/wrapper/builtin/index.js
v2.3.x
- 通过编辑器导出成微信小游戏(同上 v2.2.x);
- 下载适配文件 blapp-adapter-cocos.js(点击下载) 到导出游戏的根目录下;
- 在 game.js 中添加适配文件的引用
require('adapter-min.js');
require('blapp-adapter-cocos.js');
- 在 game.js 中最后一行添加 bl.launchSuccess();
Cocos 3.x 构建插件自动适配方案
仅支持3.3.x及以上版本
下载bilibili小游戏构建插件 biligame-builder(点击下载)
通过Cocos Creator编辑器,扩展插件能力,导入biligame-builder.zip文件
- 导入后自动开启
- 插件启动后,在构建面板中选择构建 微信小游戏 ,面板的最下方有bilibili小游戏的构建选项
- 点击构建以后,构建目录中,会生成biligame目录,使用bilibili小游戏开发工具打开即可
Cocos 3.x 手动适配方案
v3.2.x及以下
v3.3.x - v3.5.x
- 通过编辑器导出成微信小游戏;
下载适配文件 blapp-adapter-downgrade-for-cocos-v3.5-and-below.js(点击下载)到导出游戏的根目录下;
在game.js中添加适配文件,并删除'./libs/wrapper/builtin/index'的引用
// require('./libs/wrapper/builtin/index');
- 在game.js中最后一行添加 bl.launchSuccess();
v3.6.x及以上
- 通过编辑器导出成微信小游戏;
下载适配文件 blapp-adapter-downgrade-for-cocos-v3.6-and-above.js(点击下载)到导出游戏的根目录下;
在game.js中添加适配文件,并删除'./web-adapter.js'的引用
// require('./web-adapter.js');
- 在game.js中最后一行添加 bl.launchSuccess();
WebAssembly(wasm) 适配
- 如果项目中用到了wasm技术,需要单独引用适配文件,例如:spine的wasm、物理引擎的wasm等;
- 下载适配文件 blapp-adapter-wasm-for-cocos-v3.js(点击下载)到导出游戏的根目录下;
- 在game.js最上方中添加适配文件即可;
require('blapp-adapter-wasm-for-cocos-v3.js.js');
Laya
v2.1
- 在 game.js 第一行中添加以下代码。
wx.onMessage = function(){};
- 在 game.js 最后一行添加 bl.launchSuccess()。
bl.launchSuccess();
- 下载适配文件 weapp-adapter.js(点击下载) 到导出游戏的根目录下,将原有的文件替换成新的,如果开放域中也有,同样替换成新的。
v2.2
- 修改 libs/laya.core.js 中的 Config.useWebGL2。
Config.useWebGL2 = false;
2. 在 game.js 最后一行添加 bl.launchSuccess()。
bl.launchSuccess();
- 下载适配文件 weapp-adapter.js(点击下载) 到导出游戏的根目录下,将原有的文件替换成新的,如果开放域中也有,同样替换成新的。
v2.6 - v2.13
从 v2.6 - v2.13 版本,可以通过 layaIDE 支持直接导出 bilibili 小游戏,无需其他修改。
v3.0.3
暂不支持~
Egret
Egret
引擎以小游戏导出项目之后,需进行以下修改:
- 替换
weapp-adapter.js
下载地址 - 若有开放域且开放域中也有
weapp-adapter.js
,也需要做上述替换操作。 - 对于
js/eui.js
文件中line:8975
// 原代码
if (true) {
/**
* 获取重复的ID名
*/
function getRepeatedIds(xml) {
/* code */
}
function getIds(xml, result) {
/* code */
}
function toXMLString(node) {
/* code */
}
/**
* 清理声明节点里的状态标志
*/
function checkDeclarations(declarations, list) {
/* code */
}
function getPropertyStr(child) {
/* code */
}
}
// 修改后
if (true) {
/**
* 获取重复的ID名
*/
var getRepeatedIds = function getRepeatedIds(xml) {
/* code */
};
var getIds = function getIds(xml, result) {
/* code */
};
var toXMLString = function toXMLString(node) {
/* code */
};
/**
* 清理声明节点里的状态标志
*/
var checkDeclarations = function checkDeclarations(declarations, list) {
/* code */
};
var getPropertyStr = function getPropertyStr(child) {
/* code */
};
}