diff --git a/.config/.vitepress/config.mts b/.config/.vitepress/config.mts index 0c8b68d0d..97d16e3c0 100644 --- a/.config/.vitepress/config.mts +++ b/.config/.vitepress/config.mts @@ -2,7 +2,7 @@ import { defineConfig } from "vitepress"; // https://vitepress.dev/reference/site-config export default defineConfig({ - title: "微信小游戏团结/Unity快适配", + title: "微信小游戏Unity/团结快适配", description: "Wechat Mini Game Unity engine adapter documents.", themeConfig: { logo: '/image/vitepress/icon.png', diff --git a/Design/Evaluation.md b/Design/Evaluation.md index 58200e4a3..deb524c59 100644 --- a/Design/Evaluation.md +++ b/Design/Evaluation.md @@ -14,16 +14,16 @@ 版本建议: -Unity版本支持从2018到最新的2021版本 +Unity版本支持从2018到最新的2022版本 -建议使用LTS版本,尽量使用2021(更快编译和更小体积、压缩纹理、压缩音频等支持) +建议使用LTS版本,尽量使用2022(更快编译和更小体积、压缩纹理、压缩音频等支持) ### 3. 能力支持 | 能力 |是否支持 |解决方案 | | --- | --- |--- | | Unity基础模块 |支持 |支持动画、物理、AI、UI等基础模块| -| 渲染管线 |支持 |支持标准渲染管线、URP,但依赖WebGL2.0的特性处于Beta测试| +| 渲染管线 |支持 |支持标准渲染管线、URP| | 资源加载 | 支持 | Addressable、AssetBundle网络异步加载 | | Lua脚本 |支持 |支持标准Lua与常见binding(如xlua, tolua等), 不支持Luajit。需根据实际游戏在真机验证性能| | PureTS |支持 | iOS系统需14.5以上, 支持JIT| @@ -32,7 +32,7 @@ Unity版本支持从2018到最新的2021版本 | 网络系统 | 需调整 |HTTP使用UnityWebRequest,TCP使用WX SDK适配或WebSocket通信替代(如开源的UnityWebSocket插件),UDP使用WX SDK适配| | 渲染接口 | 支持 |仅支持WebGL1.0(相当于OpenGLES2.0),2.0支持处于Beta测试阶段| | 多线程 | 不支持 | 删除多线程用法,使用异步等其他替代方式 | -| 文件API | 需调整 |不支持System.File接口,但可使用微信小游戏WX SDK实现文件存储,大小限制为200MB。玩家存档请使用服务器或云开发;AssetsBundle缓存适配插件已自动支持| +| 文件API | 需调整 |不支持System.File接口,但可使用微信小游戏WX SDK实现文件存储,[大小限制为200MB(最高可开通1GB)](FileCache.md)。玩家存档请使用服务器或云开发;AssetsBundle缓存适配插件已自动支持| diff --git a/Design/Guide.md b/Design/Guide.md index 3ee480d23..4124ec346 100644 --- a/Design/Guide.md +++ b/Design/Guide.md @@ -65,7 +65,7 @@ > 相关手册:[WX SDK 平台能力适配](WX_SDK.md) 、[屏幕适配](fixScreen.md) 、 [输入法适配](InputAdaptation.md) 、 [排行榜与微信关系数据](OpenData.md) -​ Unity 游戏接入微信小游戏平台将获得微信提供的 API 以及开放能力,开发者根据需要进行按需接入。微信 API 支持的能力包括登陆、设备(存储、震动)、开放数据、广告等等。 +​ Unity 游戏接入微信小游戏平台将获得微信提供的 API 以及开放能力,开发者根据需要进行按需接入。微信 API 支持的能力包括登录、设备(存储、震动)、开放数据、广告等等。 diff --git a/Design/LaunchOperaDocument.md b/Design/LaunchOperaDocument.md index fd8e3b9ea..5c0cfbf13 100644 --- a/Design/LaunchOperaDocument.md +++ b/Design/LaunchOperaDocument.md @@ -48,7 +48,7 @@ lacop watch #### Step4 预览默认剧情 -使用 `微信开发者工具` 打开 `/minigame` 目录,AppID 请切换成当前登陆用户有开发权限的小游戏AppID,如果AppID是首次打开后会要求添加用于调试的小游戏插件,按照提示申请权限,若一切正常,你将在工具完全载入资源后看到默认的启动剧情内容。 +使用 `微信开发者工具` 打开 `/minigame` 目录,AppID 请切换成当前登录用户有开发权限的小游戏AppID,如果AppID是首次打开后会要求添加用于调试的小游戏插件,按照提示申请权限,若一切正常,你将在工具完全载入资源后看到默认的启动剧情内容。 #### Step5 对剧本修改 diff --git a/Design/PerfMeasure.md b/Design/PerfMeasure.md index bd01bb6d2..cfd519b78 100644 --- a/Design/PerfMeasure.md +++ b/Design/PerfMeasure.md @@ -30,7 +30,7 @@ Unity小游戏的启动可参考[启动流程与时序](Startup.md) | 游戏初始化完成 | 引擎和首场景完成,出现首个业务场景 | 通过timelog, 或日志查看“游戏启动耗时” | | 游戏可交互完成 | 游戏核心场景完成 | 通常定义为用户可交互的时机,可通过[启动留存上报能力](ReportStartupStat.md)上报统计。
eg:休闲游戏为**核心玩法**,RPG游戏为**创角** | | 内存峰值 | 内存峰值 | 进程内存峰值,测量方法请参考[优化Unity WebGL的内存](OptimizationMemory.md) | -| 内存Crash运行时长| 由于内存不足而使小游戏发生Crash时,当前游戏的运行时长,表示游戏的稳定运行时长 | 通过[小游戏数据助手](https://developers.weixin.qq.com/minigame/analysis/assistant.html)查看(仅包含线上用户数据)
数据路径:`数据 - 性能分析 - 运行性能 - 内存异常退出分析` | +| 内存异常退出运行时长| 由于内存不足而使小游戏发生Crash时,当前游戏的运行时长,表示游戏的稳定运行时长 | 通过[小游戏数据助手](https://developers.weixin.qq.com/minigame/analysis/assistant.html)查看(仅包含线上用户数据)
数据路径:`数据 - 性能分析 - 运行性能 - 内存异常退出分析` | | 帧率 | 核心玩法的平均帧率 | 测量5分钟以上游戏核心玩法帧率,取平均值 | | 卡顿率 | 核心玩法的平均卡顿率 | 测量5分钟以上游戏核心玩法卡顿率,取平均值 | @@ -63,7 +63,7 @@ Unity小游戏的启动可参考[启动流程与时序](Startup.md) | 阶段 | 重点关注指标 | | :---: | --- | | 启动 | 1. 游戏初始化完成耗时
2. 游戏可交互耗时 | -| 运行 | 1. 内存峰值
2. FPS均值
3. 卡顿率
4. 内存Crash率(iOS)
5. 内存Crash运行时长 | +| 运行 | 1. 内存峰值
2. FPS均值
3. 卡顿率
4. 内存异常退出率(iOS)
5. 内存异常退出运行时长 | | 兼容性问题 | 1. 逻辑异常
2. 黑/白屏
3. JS Error | #### 游戏类型说明 @@ -82,7 +82,7 @@ Unity小游戏的启动可参考[启动流程与时序](Startup.md) ***运行性能*** -重点关注:`内存峰值`、`GC后内存峰值`、`内存Crash率`、`内存Crash运行时长` +重点关注:`内存峰值`、`GC后内存峰值`、`内存异常退出率`、`内存异常退出运行时长` diff --git a/Design/PerfOptimization.md b/Design/PerfOptimization.md index f019f62c6..b89a71e99 100644 --- a/Design/PerfOptimization.md +++ b/Design/PerfOptimization.md @@ -55,20 +55,22 @@ Unity WebGL导出形式相对于原生APP应用,需要开发者更关注性能 * 释放不使用的资源 * 发布前使用压缩纹理工具进行优化 * 音频资源尽可能勾选强制单声道 +* iOS开启高性能+模式 更多信息请阅读: -* [优化Unity WebGL的内存](OptimizationMemory.md) -* [压缩纹理优化](CompressedTexture.md) -* [Unity WebGL内存原理详解](https://gameinstitute.qq.com/community/detail/112321) +* [iOS 高性能与高性能+模式](iOSOptimization.md) +* [优化Unity WebGL的内存](OptimizationMemory.md) +* [压缩纹理优化](CompressedTexture.md) +* [Unity WebGL内存原理详解](https://gameinstitute.qq.com/community/detail/112321) ### 3.5 降低CPU消耗 * iOS使用高性能模式 * 尽量使用Android CPU Profiler在小游戏真机环境Profie计算瓶颈 * 提前在Unity环境使用Unity Profiler发现问题 * 物理计算较重的游戏使用Fixed Timestep控制计算频率 -* 在中低端机型限制帧率已减轻设备发烫 +* 在中低端机型限制帧率以减轻设备发烫 更多信息请阅读: -* [iOS高性能模式](iOSOptimization.md) +* [iOS 高性能与高性能+模式](iOSOptimization.md) * [使用Android CPU Profiler性能调优](AndroidProfile.md) * [使用Unity Profiler性能调优](UnityProfiler.md) diff --git a/Design/ReportStartupStat.md b/Design/ReportStartupStat.md index d227867a2..7f45766ae 100644 --- a/Design/ReportStartupStat.md +++ b/Design/ReportStartupStat.md @@ -145,5 +145,5 @@ export const launchEventType = { ***注:*** -1. 若使用的 `转换插件版本<202211101011`(对应`Unity Loader版本<1.1.2`),数据统计报表需要建联[小游戏研发助手](IssueAndContact.md)获取。 +1. 若使用的 `转换插件版本<202211101011`(对应`Unity Loader版本<1.1.2`),数据统计报表需要[联系我们](IssueAndContact.md)获取。 2. 数据报表数据未来会开放到《小游戏数据助手》。 diff --git a/Design/SDKInstaller.md b/Design/SDKInstaller.md index 1509ed86a..f51fdd995 100644 --- a/Design/SDKInstaller.md +++ b/Design/SDKInstaller.md @@ -14,13 +14,13 @@ ### 安装指南 -`打开游戏工程` -> `团结/Unity Editor 菜单栏` -> `Package Manager` -> `右上方 “+”` -> `Add package from git URL` +`打开游戏工程` -> `Unity/团结引擎 Editor 菜单栏` -> `Package Manager` -> `右上方 “+”` -> `Add package from git URL` URL地址为: ``` https://github.com/wechat-miniprogram/minigame-tuanjie-transform-sdk.git ``` -国内Gitee镜像: +或国内Gitee镜像: ``` https://gitee.com/wechat-minigame/minigame-tuanjie-transform-sdk.git ``` @@ -37,7 +37,7 @@ https://gitee.com/wechat-minigame/minigame-tuanjie-transform-sdk.git ## 目录结构说明 -我们希望SDK与工程代码节藕,如此一来也更方便开发者的代码版本维护。因此 PackageManager 模式下,微信SDK内容将不再存放在游戏工程的Assets目录中。为兼容需要,仍然会自动在 Assets 目录下创建 `WX-WASM-SDK-V2` 数据目录,如需保持相关的应用配置应始终保留该目录内容。 +我们希望SDK与工程代码解耦,如此一来也更方便开发者的代码版本维护。因此 PackageManager 模式下,微信SDK内容将不再存放在游戏工程的Assets目录中。为兼容需要,仍然会自动在 Assets 目录下创建 `WX-WASM-SDK-V2` 数据目录,如需保持相关的应用配置应始终保留该目录内容。 ## 常见问题 diff --git a/Design/ShowCase.md b/Design/ShowCase.md index 146cf42f2..590dbe76d 100644 --- a/Design/ShowCase.md +++ b/Design/ShowCase.md @@ -1,8 +1,8 @@ # 转换案例 文档为使用Unity WebGL适配小游戏方案的部分上线游戏。 -> 转换案例目的是分享学习,若作者认为不适合分享,请联系小游戏研发助手删除。 -> 如开发者希望分享案例,也可通过小游戏开发助手添加。 +> 转换案例目的是分享学习,若作者认为不适合分享,请联系[联系我们](IssueAndContact.md)删除。 +> 如开发者希望分享案例,也可通过[联系我们](IssueAndContact.md)添加。 ## 无尽冬日 diff --git a/Design/UsingMemoryProfiler.md b/Design/UsingMemoryProfiler.md index 34de71c04..3bfcccb03 100644 --- a/Design/UsingMemoryProfiler.md +++ b/Design/UsingMemoryProfiler.md @@ -13,7 +13,7 @@ 3. 导出内存堆栈数据 - 方式1:点击性能面板左上角的"ProfilingMemory Dump" 完成导出(开启性能面板可通过修改unity-namespace.js-enableProfileStats或C#调用OpenProfileStats) -- 方式2:者在微信开发者工具中选择gameContext, 并在Console输入命令: GameGlobal.memprofiler.onDump()。 +- 方式2:在微信开发者工具中选择gameContext, 并在Console输入命令: GameGlobal.memprofiler.onDump()。 4. 微信开发者工具-“游戏缓存目录/usr/alloc_used.csv”(Android位于data/com.tencent.mm/MicroMsg/wxanewfiles/最近使用时间的目录)拖拽并以csv方式导入sqlite数据库, 推荐使用[DB Browser for SQLite](https://sqlitebrowser.org/) diff --git a/Design/UsingNetworking.md b/Design/UsingNetworking.md index 55f588de7..197fd0409 100644 --- a/Design/UsingNetworking.md +++ b/Design/UsingNetworking.md @@ -1,6 +1,6 @@ # 网络通信适配 -由于安全性的影响,JavaScript 代码没有直接访问 IP 套接字来实现网络连接。因此,该.NET 网络类(System.Net 命名空间中的一切,特别是**_System.Net.Sockets_**)在 WebGL 中不能工作。UnityEngine.Network\* 类也是这样,编译 WebGL 时将找不到这些类。 +由于安全性的影响,JavaScript 代码没有直接访问 IP 套接字来实现网络连接。因此,该.NET 网络类(System.Net 命名空间中的一切,特别是**System.Net.Sockets**)在 WebGL 中不能工作。UnityEngine.Network\* 类也是这样,编译 WebGL 时将找不到这些类。 ## HTTP 通信 diff --git a/Design/WasmSplit.md b/Design/WasmSplit.md index 78929e39b..4be59e327 100644 --- a/Design/WasmSplit.md +++ b/Design/WasmSplit.md @@ -329,7 +329,7 @@ iOS 高性能模式由于加载子包的实现不同,刚开始收集时又基 ### 如何查看分包插件日志 当出现问题时,优先排查是否stable版本的微信开发者工具,能解决大部分问题。 -若问题仍无法解决,可联系小游戏研发助手8号,提供日志排查。 +若问题仍无法解决,可[联系我们](IssueAndContact.md),提供日志排查。 日志获取方式: > 菜单栏-微信开发者工具-调试-调试微信开发者工具,搜索关键字:extension host。可右键保存日志文件 diff --git a/Design/WebGL2.md b/Design/WebGL2.md index ab7ee6ffd..9eb221dc5 100644 --- a/Design/WebGL2.md +++ b/Design/WebGL2.md @@ -20,7 +20,7 @@ Unity WebGL较多渲染优化特性依赖WebGL2.0, 因此这里需要针对该 - iOS高性能使用WebGL2会存在较多问题,平台暂不保证所有能力完善,开发者务必验证游戏所用到的特性支持情况。 - 对于WebGL2, [高性能+模式](https://developers.weixin.qq.com/minigame/dev/guide/performance/perf-high-performance-plus.html)有更好的兼容性。 - 如遇到问题请与小游戏研发助手(微信号:minigamedevop08)联系详细排查。 + 如遇到问题请[联系我们](IssueAndContact.md)详细排查。 ### iOS高性能模式开启GPU Instance,模型闪烁/消失/不绘制等问题 - **原因**:iOS WebKit对webGL2的支持存在问题,当uniform变量过多时,会出现绘制不正确、不绘制、效率变低等现象; diff --git a/Design/iOSOptimization.md b/Design/iOSOptimization.md index 20e5253c9..5dff1dacd 100644 --- a/Design/iOSOptimization.md +++ b/Design/iOSOptimization.md @@ -71,7 +71,7 @@ iOS 端小游戏高性能模式适用于遇到 iOS 环境运行性能不足,运行发烫的小游戏。 -- 需要该能力的开发者登录[微信公众平台](https://mp.weixin.qq.com) -> 首页能力地图模块 -> 点击进入"生产提效包" -> 点击开通高性能模式。 +- 需要该能力的开发者登录[微信公众平台](https://mp.weixin.qq.com) -> 能力地图 -> 研发能力 -> 生产提效包 -> 点击开通高性能模式。 - 开通成功后,过配置 game.json 的 iOSHighPerformance 为 true 则可进入高性能模式,通过去掉此开关可以正常回退到普通模式,以便两种模式对比。 diff --git a/README.md b/README.md index 4ab8e2c05..bdc4a5a62 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# 微信小游戏团结/Unity适配方案 +# 微信小游戏Unity/团结引擎适配方案 -欢迎使用 Unity WebGL 小游戏适配方案(又称团结Unity快适配),本方案设计目的是**降低 Unity 游戏转换到微信小游戏的开发成本**。基于WebAssembly技术,无需更换Unity引擎与重写核心代码的情况下将原有游戏项目适配到微信小游戏。 +欢迎使用 Unity WebGL 小游戏适配方案(又称Unity/团结引擎快适配),本方案设计目的是**降低 Unity 游戏转换到微信小游戏的开发成本**。基于WebAssembly技术,无需更换Unity引擎与重写核心代码的情况下将原有游戏项目适配到微信小游戏。 **官方文档:[https://wechat-miniprogram.github.io/minigame-unity-webgl-transform/](https://wechat-miniprogram.github.io/minigame-unity-webgl-transform/)** @@ -20,7 +20,7 @@ ## 安装与使用 -下载 [Unity插件](https://game.weixin.qq.com/cgi-bin/gamewxagwasmsplitwap/getunityplugininfo?download=1)并导入至游戏项目中,版本更新请查看[更新日志](https://wechat-miniprogram.github.io/minigame-unity-webgl-transform/CHANGELOG.html),团结版 or Package安装请查阅[SDK安装指引](https://wechat-miniprogram.github.io/minigame-unity-webgl-transform/Design/SDKInstaller.html) +下载 [Unity插件](https://game.weixin.qq.com/cgi-bin/gamewxagwasmsplitwap/getunityplugininfo?download=1)并导入至游戏项目中,版本更新请查看[更新日志](https://wechat-miniprogram.github.io/minigame-unity-webgl-transform/CHANGELOG.html),团结版或Package安装请查阅[SDK安装指引](https://wechat-miniprogram.github.io/minigame-unity-webgl-transform/Design/SDKInstaller.html) - 请查阅[推荐引擎版本](https://wechat-miniprogram.github.io/minigame-unity-webgl-transform/Design/UnityVersion.html),安装时选择WebGL组件 - 前往[微信开发者工具下载](https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html)安装Stable版开发者工具【注意:为保证稳定性,请勿使用小游戏版 Minigame Build】 diff --git a/image/mp_addplugin.png b/image/mp_addplugin.png index 9a7c39198..e6a85ff2f 100644 Binary files a/image/mp_addplugin.png and b/image/mp_addplugin.png differ diff --git a/index.md b/index.md index 45335efe7..06b218ffe 100644 --- a/index.md +++ b/index.md @@ -4,7 +4,7 @@ layout: home hero: name: "Unity/团结快适配方案" text: "基于WebGL + WebAssembly" - tagline: 无需使用JavaScript重构,快速移植团结/Unity游戏至微信小游戏平台解决方案。 + tagline: 无需使用JavaScript重构,快速移植Unity/团结引擎游戏至微信小游戏平台解决方案。 image: src: /image/vitepress/home.png alt: WeChatGame & Unity