Unity 适配方案
推荐 unity 引擎版本:2021.3.x
推荐 微信SDK版本:BiliGame-SDK-20250207.unitypackage
(点击下载)
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 设备扫IDE生成的预览/真机调试码后,无法正常进入游戏
A:预览/真机调试环境下,可以忽略IOS设备,仅用安卓手机测试即可。游戏上传到后台后,可以用IOS扫后台体验码进行测试
Q:IOS 设备扫码进入游戏后,游戏出现重启或者白屏
A:游戏内存使用过大,导致的容器自动重启。尝试减少单次加载资源的体积或者wasm编译文件的体积(最好不要超过20M)。
Q:Unity 如何使用支付能力
A:推荐下载最新SDK,内置了支付API(API文档参考)
注意: 如果无法使用推荐SDK,需要手动在js层中实现支付能力,然后与C#进行通信完成支付流程
Q:如何打开 vconsole / Debug 模式, 查看代码中的日志
A:在game.js 最上面一行中添加以下代码
// 打开调试
bl.setEnableDebug({
enableDebug: true,
});
Q:IDE运行时,出现 scaleMode is not defined 错误
A:在 game.js 中将 loadingPageConfig 中的 scaleMode 配置改为空字符串
Q:真机预览时,出现 TypeError: Failed to construct 'URL': Invalid base URL 等 URL 相关错误
A:在 game.js 中将 DATA_CDN 配置成一个有效的地址,如 https://wwww
Q:在 IDE 上传或预览游戏时,提示 Payload Too Large / service error 的错误
A:核心原因都是包体太大了。 可以尝试将 data-package 中的 webgl.data 文件放到CDN服务中,并且将原本的webgl.data 文件路径配置成 CDN的全路径,删除本地代码中的data-package目录,并去掉原本 game.json 中的分包配置中的 data-package 再尝试上传。


Q:关于必接项,侧边栏奖励和桌面快捷方式奖励
A:最新的SDK中已经集成了该能力,调用实例如下
调用示例:main.cs
(点击下载)
Q:游戏上传时,提示【未通过】检测项:xxxxxxx

// 注意:非Unity游戏,下方两个Api为必接项目,盲目绕开检测会导致审核被拒
// bl.navigateToScene({});
// bl.addShortcut({});
Q:使用了AB包后,如何配置 streamingAssetsUrl 的路径
A:当项目中使用了AB包以后,需要把全路径配置到 game.js 的 streamingAssetsUrl 中,如图所示
