前言
最近因项目需要开始研究Unity开发微信小游戏相关的知识。期间遇到各种坑,网上查阅的资料基本类似,无法解决自己遇到的问题。特用本文记录下过程,方便其他人遇到同样的问题时能够参考。
开发环境
-
Unity 版本 根据微信小游戏插件文档推荐使用2021.2.5版 。实测2021.3.x 以上版本均可使用。
-
安装 NodeJs 最新长期支持版。
-
小游戏帐号注册请参考微信官方文档 微信开放文档
-
微信开发者工具(小游戏版)
注意事项
-
小程序类目设置必须按下图进行设置。
- 否则会出现小程序菜单的->成长中没有能力地图功能。后续的步骤将出现一系列问题。比如用unity微信小游戏插件转换完的程序无法正常导入微信开发者工具。并出现无法编译提示"未找到入口 app.json 文件,或者文件读取失败,…"的错误。
- 在小程序->成长->能力地图->生产提效包中开启【高性能模式】和【快适配】功能。如下图
开发步骤
开发Unity游戏
建议先用最简单的示例,来测试转换流程和开发环境是否正确。
安装微信小游戏unity 转换插件
下载插件minigame-unity-webgl-transform: Unity WebGL 微信小游戏适配方案
在Unity Editor打开的项目中 Project中右键import package->custom package 选择下载的插件。
安装成功后在UnityEditor菜单会看到【微信小游戏】。
编译Unity项目
此步骤不赘述
设置Unity WebGL
Unity Editor中File->Build settings。如下图
转换微信小游戏
设置如下图。必填项:
- 游戏appid是微信小程序注册时产生的appid
- 小游戏项目名
- 导出路径。转换后的程序存储路径
- 首包资源加载方式。选择小游戏包内(原因目前还没有自己的CDN服务器)
点击导出WebGL并转换为小游戏。进行程序转换
转换过程可能出现的问题
- 报错node.exe不存在,首先检查是否安装了Nodejs;如果已安装按下图步骤进行设置。Custom Node Path设置为自己Nodejs的安装路径。
- 报错 Unity 2021版本使用Embeded Symbols,代码包中含函数名体积较大,发布前请用代码分包工具进行优化。根据错误提示,打开相应源代码,发现只是Unity2021以上版本这个错误一定会出现,不影响后续工作,如果如本人一般的强迫症,可以手工注释掉这行代码。
微信开发者工具导入项目
在小游戏菜单->目录->选中Unity转换小游戏设置的目录下的Minigame目录。
因为没有云服务器,后端服务选择不使用云服务。确定后就可以正常编译,调试运行自己的小游戏了。
在小游戏菜单->目录->选中Unity转换小游戏设置的目录下的Minigame目录。
因为没有云服务器,后端服务选择不使用云服务。确定后就可以正常编译,调试运行自己的小游戏了。