Skip to content

Commit

Permalink
feat: update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
nebulaliu committed Apr 9, 2024
1 parent b1bc73f commit f2a731f
Show file tree
Hide file tree
Showing 20 changed files with 52 additions and 121 deletions.
9 changes: 5 additions & 4 deletions .config/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,11 @@ export default defineConfig({
{
text: "基本",
items: [
{ text: "简介", link: "/README" },//
{ text: "简介", link: "/README" },
{ text: "安装与使用", link: "/Design/SDKInstaller" },
{ text: "入门指南", link: "/Design/Guide" },
{ text: "优秀案例", link: "/Design/ShowCase" },//
{ text: "优秀案例", link: "/Design/ShowCase" },
{ text: "更新日志", link: "/CHANGELOG.md" },
],
},
{
Expand Down Expand Up @@ -150,7 +151,7 @@ export default defineConfig({
items: [
{ text: "技术常见问题QA", link: "/Design/DevelopmentQAList" },
{ text: "问题反馈与联系我们", link: "/Design/IssueAndContact" },
{ text: "技术沙龙", link: "/" }, //
{ text: "技术沙龙", link: "/Design/Salon" },
],
},
],
Expand All @@ -169,6 +170,6 @@ export default defineConfig({
srcDir: "../",
base: "/minigame-unity-webgl-transform/",
outDir: "../docs",
ignoreDeadLinks: true,
// ignoreDeadLinks: true,
lang: "zh-cn",
});
4 changes: 1 addition & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@ Removed - 删除功能/接口
Fixed - 修复问题
Others - 其他
-->
标准版下载地址:[微信小游戏Unity转换插件](https://game.weixin.qq.com/cgi-bin/gamewxagwasmsplitwap/getunityplugininfo?download=1)

团结版下载地址:[微信小游戏团结引擎转换插件](Design/SDKInstaller.md)
SDK安装指引:[微信小游戏团结引擎转换插件WXSDK](Design/SDKInstaller.md)

## 2024-4-3 【重要更新】
包含重要bugfix、特性支持
Expand Down
2 changes: 1 addition & 1 deletion Design/AndroidProfile.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
1. 编译版本仅当导出勾选Profiling-funcs(推荐)或Development时才能在函数堆栈中看到可读函数名。
2. 特殊情况下,如果游戏勾选Profiling-funcs会导致代码包过大,那么不要使用此选项。此时得到的Profile中函数为数字ID,有两种做法进行解读:
- 2.1 通过webgl导出目录下的symbols文件对照映射
- 2.2 通过[替换脚本](../tools/update_v8_wasm_profile.py){target="_self"}对cpuprofile进行自动映射到真实函数。使用方式:python update_v8_wasm_profile.py $cpuprofile $symbol
- 2.2 通过[替换脚本](https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/blob/main/tools/update_v8_wasm_profile.py)对cpuprofile进行自动映射到真实函数。使用方式:python update_v8_wasm_profile.py $cpuprofile $symbol
3. 如希望能从游戏启动立即抓取profile,请在game.js末尾代码稍作修改:
```
const gl = GameGlobal.canvas.getContext('webgl')
Expand Down
4 changes: 2 additions & 2 deletions Design/CompressedTexture.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@

## 新版本异常回退说明

​ 微信纹理压缩升级了全新的内核程序,尽管发布前进行了多数Unity年限版本与常见机型的测试,目前仍处于初期测试使用,若使用期间存在异常影响正常的游戏发布可前往issues提出问题,并使用[上一代稳定版微信纹理压缩包(旧)](../tools/minigame.texturecompressed.backup.unitypackage){target="_self"}导入工程后采用旧版本完成游戏发布。旧版本使用指引请参阅:[微信压缩纹理使用说明(旧)](https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/blob/37ee6bf04443ac37c81571f60d43f9ca6e6c21c8/Design/CompressedTexture.md)
​ 微信纹理压缩升级了全新的内核程序,尽管发布前进行了多数Unity年限版本与常见机型的测试,目前仍处于初期测试使用,若使用期间存在异常影响正常的游戏发布可前往issues提出问题,并使用[上一代稳定版微信纹理压缩包(旧)](https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/blob/main/tools/minigame.texturecompressed.backup.unitypackage)导入工程后采用旧版本完成游戏发布。旧版本使用指引请参阅:[微信压缩纹理使用说明(旧)](https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/blob/37ee6bf04443ac37c81571f60d43f9ca6e6c21c8/Design/CompressedTexture.md)



Expand Down Expand Up @@ -164,7 +164,7 @@

#### 解决方案二:

​ 先下载 [libgdiplus.dylib](../tools/libgdiplus.dylib){target="_self"} 文件后,将其放在 UnityEditor `/Applications/Unity/Hub/Editor/{$Unity_Editor_Version}/Unity.app/Contents/MonoBleedingEdge/lib/libgdiplus.dylib` 路径下,并编辑 `/Applications/Unity/Hub/Editor/{$Unity_Editor_Version}/Unity.app/Contents/MonoBleedingEdge/etc/mono/config` 文件,将 `target= .../libgdiplus.dylib` 路径内容均变更为下载文件的存放完整路径,重启 Unity Editor 即可。
​ 先下载 [libgdiplus.dylib](https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/blob/main/tools/libgdiplus.dylib) 文件后,将其放在 UnityEditor `/Applications/Unity/Hub/Editor/{$Unity_Editor_Version}/Unity.app/Contents/MonoBleedingEdge/lib/libgdiplus.dylib` 路径下,并编辑 `/Applications/Unity/Hub/Editor/{$Unity_Editor_Version}/Unity.app/Contents/MonoBleedingEdge/etc/mono/config` 文件,将 `target= .../libgdiplus.dylib` 路径内容均变更为下载文件的存放完整路径,重启 Unity Editor 即可。

## 微信压缩纹理API介绍

Expand Down
11 changes: 5 additions & 6 deletions Design/Guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,11 @@

![Unity快适配调优指南](../image/guide/guide1.png)

- [【阶段一】兼容性评估](#阶段一兼容性评估):初步确认技术方案是否符合游戏项目
- [【阶段二】项目转换](#阶段二项目转换):可体验的WebGL、小游戏项目
- [【阶段三】微信平台能力接入](#阶段三微信平台能力接入):接入更多平台能力
- [【阶段四】体验调优](#阶段四体验调优):达到可上线标准的小游戏体验
- [【阶段五】发布上线与现网监控](#阶段五发布上线与现网监控):上线后的问题排查与分析

- 【阶段一】兼容性评估:初步确认技术方案是否符合游戏项目
- 【阶段二】项目转换:可体验的WebGL、小游戏项目
- 【阶段三】微信平台能力接入:接入更多平台能力
- 【阶段四】体验调优:达到可上线标准的小游戏体验
- 【阶段五】发布上线与现网监控:上线后的问题排查与分析


## 【阶段一】兼容性评估
Expand Down
6 changes: 3 additions & 3 deletions Design/IssueAndContact.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* 最好能提供非业务相关的可复现代码片段


## 小游戏研发助手
开发者也可以通过“研发助手号”直接与小游戏团队进行技术交流
## 小游戏客服助手
开发者也可以通过客服助手直接与小游戏团队进行技术交流

<img src='../image/issueandcontact2.jpg' width="200"/>
<img src='../image/issueandcontact2.png' width="200"/>
4 changes: 2 additions & 2 deletions Design/LaunchOpera.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@

## 接入方式

[演示工程源码](/Demo/LaunchOpera)
[演示工程源码](https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/tree/main/Demo/LaunchOpera)
由于启动剧情为Unity启动加载耗时过久而推出的能力,因此主要配置由 JavaScript 脚本实现(早于WASM初始化)。

### 步骤一:设计剧情

剧本设计请阅读 [启动剧情剧本自助设计工具及文档](LaunchOperaDocument.md) 完成设计与调试;
剧情设计由开发者自行准备游戏主题相关视频、图片资源素材并上传至CDN。剧情编辑工具目前有一定的使用学习成本,Beta阶段为了降低开发者的接入难度,具体的剧情设计需联系[研发助手](/Design/IssueAndContact.md#小游戏研发助手)协助设计。

剧本产物:资源目录 `launchOperaPlay`

Expand Down
2 changes: 1 addition & 1 deletion Design/OpenData.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ wx.onMessage(data => {
因此插件内置的示例采用的是微信自研的[轻量级渲染引擎](https://wechat-miniprogram.github.io/minigame-canvas-engine/),压缩后只有几十k,这需要你掌握一些简单的 Web 开发知识,包括 [Flex布局](https://www.ruanyifeng.com/blog/2015/07/flex-grammar.html)[CSS](https://www.w3schools.com/css/),参照示例修修改改很快能够上手。

### 5、示例DEMO
可以参考[Demo/Ranking](../Demo/Ranking)下面的Unity工程。插件导出的 open-data 已经是一个比较功能完备的工程,进行简单的魔改就能够满足需求。
可以参考[Demo/Ranking](https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/tree/main/Demo/Ranking)下面的Unity工程。插件导出的 open-data 已经是一个比较功能完备的工程,进行简单的魔改就能够满足需求。

#### 5.1 好友排行榜
1. 展示 RawImage 的时候调用 SDK API
Expand Down
4 changes: 2 additions & 2 deletions Design/OptimizationPerformence.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ Unity Profiler的运行原理是在Unity Editor监听固定端口,Unity WebGL
- 工具需要开启development模式,对性能有较大影响
- 可获取函数热点、内存与模块上报数据(比如物理、动画等)
- 不是很稳定,部分版本会出现无法连接的情况
- 内存数据不准确,并不能反应真实使用情况,内存工具请查阅[优化Unity WebGL的内存](Design/OptimizationMemory.md)
- 内存数据不准确,并不能反应真实使用情况,内存工具请查阅[优化Unity WebGL的内存](/Design/OptimizationMemory.md)

### 3.3 小游戏云测

Expand All @@ -69,7 +69,7 @@ Unity Profiler的运行原理是在Unity Editor监听固定端口,Unity WebGL
不用使用XML、JSON解析大文件,尤其是在游戏启动阶段,字符串类型解析器将耗费大量CPU算力与产生GC。比如大型游戏在使用Addressable时catalog文件往往会超过10MB,导致解析过慢而影响启动速度,此时应使用其他资源管理比如AssetBundle来减少资源索引文件大小。同样地,在游戏过程中也尽量避免这类CPU消耗。

### 2. LUA性能
Unity WebGL环境的lua不支持JIT,因此需要避免用于重度逻辑。可[使用 Android CPU Profiler 性能调优](Design/AndroidProfile.md)查看LUA的耗时占比。
Unity WebGL环境的lua不支持JIT,因此需要避免用于重度逻辑。可[使用 Android CPU Profiler 性能调优](/Design/AndroidProfile.md)查看LUA的耗时占比。

### 3. 物理性能
请参考文档[优化物理性能](https://docs.unity3d.com/cn/2021.3/Manual/iphone-Optimizing-Physics.html),适当调整Fixed Timestep与 Maximum Allowed Timestep降低计算频率。
Expand Down
2 changes: 1 addition & 1 deletion Design/ResourcesLoading.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
- 快速适配对微信API能力的接入,性能上重点对首场景启动优化,关卡分包加载(主关卡优先,后续关卡按需加载等)。
- 建议[使用 Unity Instant Game 进行资源按需加载](InstantGameGuide.md)缩短转换周期。

#### 原生 APP 手游未使用 资源按需加载 的中重度游戏**
#### 原生 APP 手游未使用 资源按需加载 的中重度游戏

特点:游戏较大,但未使用 AA/AB 包方式进行分包管理,或较少使用,场景中必须与非及时资源在启动时一并加载。

Expand Down
14 changes: 13 additions & 1 deletion Design/SDKInstaller.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
# 微信SDK安装

- 请查阅[推荐引擎版本](/Design/UnityVersion.md),安装时选择 WeiXin MiniGame(团结引擎)或 WebGL(Unity引擎)组件
- 前往[微信开发者工具下载](https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html)安装Stable版开发者工具【注意:为保证稳定性,请勿使用小游戏版 Minigame Build】
- 查阅[小游戏开发者文档-快速上手](https://developers.weixin.qq.com/minigame/dev/guide/)创建小游戏类目应用
- 登录[MP微信公众平台](https://mp.weixin.qq.com),能力地图-生产提效包-快适配,开通使用
- 查阅[快速开始:转换工具导出微信小游戏](/Design/Transform.md)进行小游戏导出转换

为兼容历史团结/Unity版本的使用,微信小游戏团队将SDK分为如下两种模式安装使用。

## 方法一:Package 方式安装
## 方法一(推荐):Package 方式安装

目前[团结引擎](https://unity.cn/tuanjie/tuanjieyinqing)、Unity 2019及以后版本推荐使用 Package 方式安装WXSDK。

Expand All @@ -13,6 +19,12 @@ URL地址为:
```
https://github.com/wechat-miniprogram/minigame-tuanjie-transform-sdk.git
```

国内Gitee镜像:
```
https://gitee.com/wechat-minigame/minigame-tuanjie-transform-sdk.git
```

即可完成SDK导入。

## 方法二:资源包方式安装
Expand Down
5 changes: 5 additions & 0 deletions Design/Salon.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# 技术沙龙

## 微信小游戏技术沙龙分享材料2023

https://docs.qq.com/pdf/DSVdvRHh6elZRdGZu
2 changes: 1 addition & 1 deletion Design/Transform.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
- 不自动缓存文件类型:游戏资源CDN下不自动缓存的文件类型,具体参见[AssetBundle缓存](UsingLoader.md)
- Bundle名中Hash长度:自定义AssetBundle名中Hash长度用于缓存控制,具体参见[AssetBundle缓存](UsingLoader.md)
- 预下载列表:网络空闲时预下载的资源,[使用预下载](UsingPreload.md)
- SDK功能选项:[好友关系链](OpenData.md) [音频优化](AudioOptimization.md)
- SDK功能选项:[好友关系链](OpenData.md)
- 调试编译选项

### 2.2 了解转换后目录结构
Expand Down
2 changes: 1 addition & 1 deletion Design/UsingAddressable.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Unity中资源按需加载也可以使用老的AssetBundle,然而使用AB需

[WXAssetBundle](UsingAssetBundle.md#三更节省内存的wxassetbundle)可以减轻iOS的内存压力,对于使用Addressable的项目,需要替换Provider来使用WXAssetBundle。

1. 下载[WXAssetBundleProvider.cs](../tools/WXAssetBundleProvider.cs),放到WX-WASM-SDK-V2/Runtime/目录下
1. 下载[WXAssetBundleProvider.cs](https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/blob/main/tools/WXAssetBundleProvider.cs),放到WX-WASM-SDK-V2/Runtime/目录下
2. 导入插件后会有WXAssetBundleProvider.cs缺依赖的报错,需要给WX-WASM-SDK-V2/Runtime 增加 Unity.ResourceManager 的引用
<img src='../image/wxassetbundleprovider1.png' width="600"/>

Expand Down
2 changes: 1 addition & 1 deletion Design/UsingLoader.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ hideAfterCallmain: $HIDE_AFTER_CALLMAIN, // 是否callmain完成立即隐藏封

### 3.3 首包资源加载方式
**加载方式在转换工具导出时就确定好了,开发者一般不需要修改**
**游戏资源量比较少**时,可选择将首包资源作为小游戏分包加载,了解[小游戏分包](https://developers.weixin.qq.com/minigame/dev/guide/base-ability/sub-packages.html)
**游戏资源量比较少**时,可选择将首包资源作为小游戏分包加载,了解[小游戏分包](https://developers.weixin.qq.com/minigame/dev/guide/base-ability/independent-sub-packages.html)
wasm代码已是通过代码分包加载,当**wasm代码+首包资源>20M时,资源包不可再使用小游戏分包加载**
当首包资源通过小游戏代码分包下载时,会将首包资源存放在minigame/data-package这个分包下

Expand Down
4 changes: 2 additions & 2 deletions Design/UsingMemoryProfiler.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,8 @@ Other: select sum(size) from alloc_used where callback not like "%xxx%" or cal
- 首先,这是正常情况,因为每次分配内存都会获取堆栈信息导致运行慢
- Lua会存在大量分配行为,会加重这个问题, 因此我们提供了专门的内存分配器忽略Lua内存,具体做法:

1.[simpledlmalloc.c](../tools/simpledlmalloc.c)添加到xLua虚拟机源码目录下参与编译,(和lauxlib.c同一目录)
2. 参考[lauxlib.c](../tools/lauxlib.c),在lua源码目录下的同名文件中增加`simple_dlmalloc`,并修改`LUALIB_API lua_State *luaL_newstate (void)` 为如下所示
1.[simpledlmalloc.c](https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/blob/main/tools/simpledlmalloc.c)添加到xLua虚拟机源码目录下参与编译,(和lauxlib.c同一目录)
2. 参考[lauxlib.c](https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/blob/main/tools/lauxlib.c),在lua源码目录下的同名文件中增加`simple_dlmalloc`,并修改`LUALIB_API lua_State *luaL_newstate (void)` 为如下所示
```C
#include "simpledlmalloc.c"
static void *simple_dlmalloc (void *ud, void *ptr, size_t osize, size_t nsize) {
Expand Down
Loading

0 comments on commit f2a731f

Please sign in to comment.