前言

最近因项目需要开始研究Unity开发微信小游戏相关的知识。期间遇到各种坑,网上查阅的资料基本类似,无法解决自己遇到的问题。特用本文记录下过程,方便其他人遇到同样的问题时能够参考。

开发环境

  1. Unity 版本 根据微信小游戏插件文档推荐使用2021.2.5版 。实测2021.3.x 以上版本均可使用。
  2. 安装 NodeJs 最新长期支持版。
  3. 小游戏帐号注册请参考微信官方文档 微信开放文档
  4. 微信开发者工具(小游戏版)

注意事项

  1. 小程序类目设置必须按下图进行设置。
  2. unity 微信小游戏 unity 微信小游戏开发_微信

unity 微信小游戏 unity 微信小游戏开发_微信_02

  1. 否则会出现小程序菜单的->成长中没有能力地图功能。后续的步骤将出现一系列问题。比如用unity微信小游戏插件转换完的程序无法正常导入微信开发者工具。并出现无法编译提示"未找到入口 app.json 文件,或者文件读取失败,…"的错误。

unity 微信小游戏 unity 微信小游戏开发_unity_03

  1. 在小程序->成长->能力地图->生产提效包中开启【高性能模式】和【快适配】功能。如下图

unity 微信小游戏 unity 微信小游戏开发_unity 微信小游戏_04

unity 微信小游戏 unity 微信小游戏开发_unity 微信小游戏_05

开发步骤

开发Unity游戏

建议先用最简单的示例,来测试转换流程和开发环境是否正确。

安装微信小游戏unity 转换插件

下载插件minigame-unity-webgl-transform: Unity WebGL 微信小游戏适配方案

在Unity Editor打开的项目中 Project中右键import package->custom package 选择下载的插件。

安装成功后在UnityEditor菜单会看到【微信小游戏】。

unity 微信小游戏 unity 微信小游戏开发_微信_06

编译Unity项目

此步骤不赘述

设置Unity WebGL

Unity Editor中File->Build settings。如下图

unity 微信小游戏 unity 微信小游戏开发_unity 微信小游戏_07

转换微信小游戏

设置如下图。必填项:

  1. 游戏appid是微信小程序注册时产生的appid
  2. 小游戏项目名
  3. 导出路径。转换后的程序存储路径
  4. 首包资源加载方式。选择小游戏包内(原因目前还没有自己的CDN服务器)

点击导出WebGL并转换为小游戏。进行程序转换

unity 微信小游戏 unity 微信小游戏开发_unity 微信小游戏_08

转换过程可能出现的问题

unity 微信小游戏 unity 微信小游戏开发_微信_09

  1. 报错node.exe不存在,首先检查是否安装了Nodejs;如果已安装按下图步骤进行设置。Custom Node Path设置为自己Nodejs的安装路径。

unity 微信小游戏 unity 微信小游戏开发_微信_10

unity 微信小游戏 unity 微信小游戏开发_微信_11

  1. 报错 Unity 2021版本使用Embeded Symbols,代码包中含函数名体积较大,发布前请用代码分包工具进行优化。根据错误提示,打开相应源代码,发现只是Unity2021以上版本这个错误一定会出现,不影响后续工作,如果如本人一般的强迫症,可以手工注释掉这行代码。

unity 微信小游戏 unity 微信小游戏开发_微信_12

微信开发者工具导入项目

在小游戏菜单->目录->选中Unity转换小游戏设置的目录下的Minigame目录。

因为没有云服务器,后端服务选择不使用云服务。确定后就可以正常编译,调试运行自己的小游戏了。

在小游戏菜单->目录->选中Unity转换小游戏设置的目录下的Minigame目录。

因为没有云服务器,后端服务选择不使用云服务。确定后就可以正常编译,调试运行自己的小游戏了。

unity 微信小游戏 unity 微信小游戏开发_unity_13