Unity 适配方案
推荐 unity 引擎版本:2021.3.x
推荐 微信SDK版本:minigame.202305172131
(点击下载)
IDE 支持版本 >= 1.3.3
(前往下载)
前序准备
通过 unity 中的微信小游戏插件,构建小游戏产物。
构建好的产物结构如下:
可以通过如下 2 种方式,可以将构建产物转成 bilibili 小游戏:
- 使用哔哩哔哩开发者工具,转成 bilibili 小游戏
- 使用 CLI 工具,转成 bilibili 小游戏
使用开发者工具,转成 bilibili 小游戏
首次转成 bilibili 小游戏
- 打开哔哩哔哩开发者工具(1.4.0 及以上版本),选择小游戏
- 点击右下角的“+”号,进入小游戏项目管理页面
- 小游戏类型选择“Unity 小游戏”,导入方式选择“转成 bilibili 小游戏并导入”,如下图所示:
- 项目目录,选择
前序准备
中的产物目录,即选择同时包含
“webgl”和“minigame”的目录。若不满足该要求,则会出现下图所示错误提示:
- 填写 AppId 和项目名称。完成后,点击右下角“确定”按钮。
- 转换过程耗时较久,预计 5 分钟左右,请耐心等待。
产物更新,重新转成 bilibili 小游戏
- 重复“首次转成 bilibili 小游戏”中的步骤。
- 点击确认后,会弹出“二次确认弹窗”,如下图所示:
- 点击“确认”,则会将产物重新转成 bilibili 小游戏。
使用 CLI 工具,转成 bilibili 小游戏
- 全局安装构建工具。
npm install bili-sgame-cli@latest -g
- 在第 1 步生成的产物目录中执行命令
version: 小游戏版本
|appid: 小游戏 ID
。
bili-sgame-cli unity [version] [appid]
- 执行完毕后,会在同目录中生成
biligame
。
- 打开安装好的哔哩哔哩开发工具(v1.4.0 及以上),进入“小游戏项目管理页面”。
- 小游戏类型选择“Unity 小游戏”,导入方式选择“直接导入”,如下图所示:
- 项目目录,选择第 4 步构建出的
biligame
目录。 - 点击右下角的“确认”按钮,完成 Unity 小游戏导入。
常见问题
Q:IDE中生成的预览码,用手机扫码无法进入游戏
A:将 brotli-dec-wasm.zip(点击下载)文件解压后,复制到项目的根目录中,并将该目录配置到game.json中的分包配置中(见下图)
Q:IDE运行游戏时,出现 Web Audio API is not supported in this browser / TypeError: Cannot read property 'length' of undefined等错误
A:该问题可以忽略,用IDE生成预览码后,手机扫码测试即可
Q:IOS 设备扫预览/真机调试码后,无法正常进入游戏
A:预览/真机调试环境下,可以忽略IOS设备,仅用安卓手机测试即可。游戏上传到后台后,可以用IOS扫后台体验码进行测试
Q:IDE中生成的预览码,用手机扫码无法进入游戏
A:将 brotli-dec-wasm.zip(点击下载)文件解压后,复制到项目的根目录中,并将该目录配置到game.json中的分包配置中(见下图)
Q:如何打开 vconsole / Debug 模式, 查看代码中的日志
A:在game.js 最上面一行中添加以下代码 // 打开调试 bl.setEnableDebug({ enableDebug: true, });
Q:IDE运行时,出现 scaleMode is not defined 错误
A:在 game.js 中将 loadingPageConfig 中的 scaleMode 配置改为空字符串
Q:在 IDE 上传或预览游戏时,提示 Payload Too Large 的错误
A:将 data-package 中的 webgl.data 文件放到CDN服务中,并且将原本的webgl.data 文件路径配置成 CDN的全路径,删除本地代码中的data-package目录,并去掉原本 game.json 中的分包配置中的 data-package 再尝试上传。
A:在 game.js 中最下面添加以下代码,绕开检测(注释不要去掉) Q:游戏上传时,提示【未通过】检测项:xxxxxxx
// 注意:非Unity游戏,下方两个Api为必接项目,盲目绕开检测会导致审核被拒
// bl.navigateToScene({});
// bl.addShortcut({});
Q:使用了AB包后,如何配置 streamingAssetsUrl 的路径
A:当项目中使用了AB包以后,需要把全路径配置到 game.js 的 streamingAssetsUrl 中,如图所示