Transform.md 5.6 KB
Newer Older
O
migrate  
oceanxiao 已提交
1 2
# 转换工具导出微信小游戏

ocean2o11's avatar
ocean2o11 已提交
3
## 一、Unity导出WebGL
O
migrate  
oceanxiao 已提交
4

ocean2o11's avatar
ocean2o11 已提交
5
添加需要导出的scene
O
migrate  
oceanxiao 已提交
6 7 8 9 10 11
   
<image src='../image/scene.png' width="600"/>

建议仅勾选Loading场景,后续场景使用AssetsBundle/Addressable进行按需加载。


ocean2o11's avatar
ocean2o11 已提交
12
## 二、适配小游戏
Z
zhangjunkunn 已提交
13 14 15

### 2.1 转换小游戏
顶部菜单栏 点击 微信小游戏 -> 转换小游戏, 填写相应参数,点击`导出WEBGL并转换为小游戏`按钮 ,等待转换完成。
O
migrate  
oceanxiao 已提交
16 17 18 19 20 21

<image src='../image/export.png' width="600"/>

其中:
1. 必须
- 游戏appid:小游戏的appid
22 23
- 游戏资源CDN:游戏资源所在HTTP或CDN地址
- 导出路径:转换后文件目录
O
migrate  
oceanxiao 已提交
24 25 26
2. 可选
- 小游戏项目名:开发者工具中展示的小游戏项目名
- 首包资源加载方式:CDN-使用CDN下载首包资源;小游戏分包-使用小游戏代码分包下载资源
O
oceanxiao 已提交
27
- 加载阶段视频URL:启动需要一定耗时,在启动加载时会循环播放这段视频,视频格式请参考[视频规范](video.md)
28 29
- 启动背景/视频封面图:启动阶段背景图片;如果配置了加载阶段视频URL,则作为视频封面。
- 游戏方向:游戏是横屏还是竖屏,可选值参考[deviceOrientation](https://developers.weixin.qq.com/minigame/dev/reference/configuration/app.html)
Z
zhangjunkunn 已提交
30
- 不自动缓存文件类型:游戏资源CDN下不自动缓存的文件类型,具体参见[AssetBundle缓存](UsingLoader.md)
31 32 33 34
- Bundle名中Hash长度:自定义AssetBundle名中Hash长度用于缓存控制,具体参见[AssetBundle缓存](UsingLoader.md)
- 预下载列表:网络空闲时预下载的资源,[使用预下载](UsingPreload.md)
- SDK功能选项:[好友关系链](OpenData.md) [音频优化](AudioOptimization.md)
- 调试编译选项
O
migrate  
oceanxiao 已提交
35

Z
zhangjunkunn 已提交
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
### 2.2 了解转换后目录结构
在转换完成后,会在导出路径下生成如下目录

```bash
.
├── backup
├── minigame
└── webgl
```

- backup为转换工具的资源备份目录
- minigame为小游戏项目
- webgl为unity导出为webgl后的资源和代码目录


### 2.3 资源部署
52
转换完成后,参照[资源部署与缓存](DataCDN.md)章节进行资源部署,并了解启动Loader在加载资源时的缓存逻辑。
O
migrate  
oceanxiao 已提交
53

Z
zhangjunkunn 已提交
54 55 56 57 58 59 60 61 62 63 64 65 66 67
### 2.4 小游戏预览
1. 下载小游戏开发者工具
[微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html)

> 需要下载,`稳定版 Stable Build`,非小游戏版!

2. 导入项目
参考[小游戏快速开始](https://developers.weixin.qq.com/minigame/dev/guide/#%E5%AE%89%E8%A3%85%E5%B9%B6%E5%90%AF%E5%8A%A8%E5%BC%80%E5%8F%91%E8%80%85%E5%B7%A5%E5%85%B7)

导入转换后的`minigame`目录

3. 工具预览
<image src='../image/devtools_preview.png'>

O
migrate  
oceanxiao 已提交
68
注意:
Z
zhangjunkunn 已提交
69 70 71 72 73 74 75 76 77 78 79 80
> 项目使用了小游戏Unity适配插件,若小游戏是第一次使用本插件,在开发者工具会报错提示插件未授权

<image src="../image/addPlugin.png">

**请前往mp后台-能力地图-生产提效包-快适配,开通使用**

<image src='../image/mp_addplugin.png'>

<image src='../image/auth_plugin.png'>

4. 真机预览
点击**预览**,扫码二维码预览即可。
O
migrate  
oceanxiao 已提交
81

Z
zhangjunkunn 已提交
82 83 84
请不要是用真机调试!!
请不要是用真机调试!!
请不要是用真机调试!!
O
migrate  
oceanxiao 已提交
85
 
ocean2o11's avatar
ocean2o11 已提交
86
## 三、使用脚本集成到自己的构建系统
Z
zhangjunkunn 已提交
87
如果你希望将导出插件集成到自己的发布流程,想脚本调用的话,可修改 `Assets/WX-WASM-SDK/Editor/MiniGameConfig.asset`配置,然后调用WXEditorWindow 的 DoExport方法导出小游戏
O
migrate  
oceanxiao 已提交
88 89 90 91 92
 ```
 var win = new WXEditorWindow();
 win.DoExport();
 ```

Z
zhangjunkunn 已提交
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
### `MiniGameConfig.asset`支持的配置
#### 与转换面板配置有对应关系的配置项
```
// 基本设置
Appid -- 小游戏appid
CDN -- 游戏资源CDN
projectName -- 小游戏项目名
Orientation -- 游戏方向
maxStorage -- 最大内存
DST -- 导出路径
// 启动Loader设置
bgImageSrc -- 背景图/封面图
VideoUrl -- 加载阶段视频URL
assetLoadType -- 首包资源加载方式
bundleExcludeExtensions -- 不自动缓存文件类型
bundleHashLength -- bundle名中hash长度
// 预下载
Z
zhangjunkunn 已提交
110
preloadFiles -- 预下载文件列表,用;分隔
Z
zhangjunkunn 已提交
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
// SDK功能
UseFriendRelation -- 使用好友关系链
UseAudioApi -- 使用微信音频API
// 调试编译选项
DevelopBuild -- Development Build
AutoProfile -- Autoconnect Profiler
ScriptOnly -- Scripts Only Build
profilingFuncs -- Profiling Funcs
Webgl2 -- WebGL2.0
DeleteStreamingAssets -- DeleteStreamingAssets
```
#### 不常用配置
使用说明参考[Loader配置](UsingLoader.md)
```
// 资源加载与缓存
dataFileSubPrefix: 配置首包资源加载路径
Z
zhangjunkunn 已提交
127 128
bundlePathIdentifier: URL中包含特定标识符时需要自动缓存,用;分隔
defaultReleaseSize: 达到缓存上限时默认额外清理的存储大小,用;分隔
Z
zhangjunkunn 已提交
129 130 131 132 133 134 135 136
needCacheTextures: 是否开启纹理缓存
texturesPath: 纹理存储路径
texturesHashLength: 纹理中hash长度
// 启动界面
loadingBarWidth: 加载进度条宽度
HideAfterCallMain: 是否初始化完成立即隐藏封面
```

ocean2o11's avatar
ocean2o11 已提交
137 138
## 四、常见问题
1. 为什么资源或网络请求在打开"vConsole"正常,关闭时下载失败?
O
migrate  
oceanxiao 已提交
139 140 141
网络请求必须**配置安全域名**:https://developers.weixin.qq.com/minigame/dev/guide/base-ability/network.html
打开"vConsole"时,小游戏默认不检查因此能请求通过。

ocean2o11's avatar
ocean2o11 已提交
142
2. 中文字体适配
O
migrate  
oceanxiao 已提交
143 144
字体必须打包到项目中,才能正常展示。

ocean2o11's avatar
ocean2o11 已提交
145
3. 音频被切到后台会停止
O
migrate  
oceanxiao 已提交
146
小游戏被切到后台会停止播放音频需代码中监听 [WX.OnShow](https://developers.weixin.qq.com/minigame/dev/api/base/app/life-cycle/wx.onShow.html)事件和 [WX.OnAudioInterruptionEnd](https://developers.weixin.qq.com/minigame/dev/api/base/app/app-event/wx.onAudioInterruptionEnd.html)事件,在该事件之后重新播放音频