Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_39854397
minigame-unity-webgl-transform
提交
383cad12
M
minigame-unity-webgl-transform
项目概览
qq_39854397
/
minigame-unity-webgl-transform
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
minigame-unity-webgl-transform
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
383cad12
编写于
12月 20, 2022
作者:
Z
zhangjunkunn
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: 更新资源缓存相关文档
上级
cdbe308b
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
25 addition
and
6 deletion
+25
-6
Design/FileCache.md
Design/FileCache.md
+22
-4
Design/Transform.md
Design/Transform.md
+1
-1
Design/UsingPreload.md
Design/UsingPreload.md
+2
-1
未找到文件。
Design/FileCache.md
浏览文件 @
383cad12
...
@@ -15,13 +15,14 @@
...
@@ -15,13 +15,14 @@
-
wasm主包/分包,即
`wasm.code.unityweb`
文件
-
wasm主包/分包,即
`wasm.code.unityweb`
文件
-
首包资源,即
`webgl.data.unityweb`
文件
-
首包资源,即
`webgl.data.unityweb`
文件
-
预加载的文件
-
预加载的文件
-
请求URL包含
StreamingAssets
,并且没有添加到excludeFileExtensions列表中的文件
-
请求URL包含
于bundlePathIdentifier列表
,并且没有添加到excludeFileExtensions列表中的文件
-
开启纹理缓存后,纹理资源
-
开启纹理缓存后,纹理资源
### 转换插件相关配置
### 转换插件相关配置
```
```
bundlePathIdentifier: 需要缓存的路径
bundlePathIdentifier: 需要缓存的路径
bundleHashLength: bundle中hash占多少长度
excludeFileExtensions: 不需要缓存的文件类型
excludeFileExtensions: 不需要缓存的文件类型
needCacheTextures: 是否缓存纹理
needCacheTextures: 是否缓存纹理
texturesPath: 纹理存放路径
texturesPath: 纹理存放路径
...
@@ -31,6 +32,13 @@ texturesHashLength: 纹理中hash长度
...
@@ -31,6 +32,13 @@ texturesHashLength: 纹理中hash长度
## 三、缓存规则
## 三、缓存规则
> 适用于预加载的文件和URL中包含`bundlePathIdentifier`的文件
> 适用于预加载的文件和URL中包含`bundlePathIdentifier`的文件
假设有以下配置
```
1. DATA_CDN: https://weixin.qq.com
2. bundlePathIdentifier: ['StreamingAssets']
3. bundleHashLength: 32
```
在写入缓存前需要经过三步
在写入缓存前需要经过三步
1.
根据URL生成缓存路径
1.
根据URL生成缓存路径
URL剔除掉DATA_CDN部分后作为缓存路径
URL剔除掉DATA_CDN部分后作为缓存路径
...
@@ -40,16 +48,20 @@ URL剔除掉DATA_CDN部分后作为缓存路径
...
@@ -40,16 +48,20 @@ URL剔除掉DATA_CDN部分后作为缓存路径
那么:
那么:
-
则缓存路径=StreamingAssets/textures_8d265a9dfd6cb7669cdb8b726f0afb1e
-
则缓存路径=StreamingAssets/textures_8d265a9dfd6cb7669cdb8b726f0afb1e
-
资源唯一标识=StreamingAssets/textures
_
-
资源唯一标识=StreamingAssets/textures
-
资源版本=8d265a9dfd6cb7669cdb8b726f0afb1e
-
资源版本=8d265a9dfd6cb7669cdb8b726f0afb1e
***注意:资源实际部署的CDN前缀必须与转换面板填写的CDN地址一致,否则无法按照前文的缓存规则获得资源的唯一标识。**
*
***注意:资源实际部署的CDN前缀必须与转换面板填写的CDN地址一致,否则无法按照前文的缓存规则获得资源的唯一标识。
导致缓存失败
**
*
2.
清理掉同名旧文件
2.
清理掉同名旧文件
通过文件名中的hash区分同名文件的不同版本
通过文件名中的hash区分同名文件的不同版本
继续上面的例子,假如本地已经有
`StreamingAssets/textures_cdb8b726f0afb1e8d265a9dfd6cb7669`
继续上面的例子,假如本地已经有
`StreamingAssets/textures_cdb8b726f0afb1e8d265a9dfd6cb7669`
在写入缓存前,插件认为已经本地已经有同名文件
`StreamingAssets/textures`
,但hash与本次写入的文件不一致,则需要删除
`StreamingAssets/textures_cdb8b726f0afb1e8d265a9dfd6cb7669`
在写入缓存前,插件认为已经本地已经有同名文件
`StreamingAssets/textures`
,但hash与本次写入的文件不一致,则需要删除
`StreamingAssets/textures_cdb8b726f0afb1e8d265a9dfd6cb7669`
支持的bundle命名:需以
`-`
或
`_`
分割,当以其他符号分割时,无法正确处理版本信息,故无法正确删除旧版本资源
-
textures_8d265a9dfd6cb7669cdb8b726f0afb1e
-
textures-8d265a9dfd6cb7669cdb8b726f0afb1e
转换插件相关配置
转换插件相关配置
```
```
bundleHashLength: bundle中hash的长度
bundleHashLength: bundle中hash的长度
...
@@ -60,9 +72,13 @@ bundleHashLength: bundle中hash的长度
...
@@ -60,9 +72,13 @@ bundleHashLength: bundle中hash的长度
转换插件相关配置
转换插件相关配置
```
```
defaultReleaseSize: 清理时,默认额外清理的大小,单位Bytes,1MB = 1024KB = 1024*1024Bytes
defaultReleaseSize: 清理时,默认额外清理的大小,单位Bytes,1MB = 1024KB = 1024*1024Bytes
maxStorage: 最大缓存容量,修改此值需要联系研发助手开通权限,否则无效
```
```
## 四、注意项
## 四、判断是否走缓存
1.
`minigame/unity-namespace.js`
打开详细日志开关
`enableDebugLog: true`
查看资源日志是否有读取缓存
## 五、注意项
1.
文件名需要带上hash
[
BuildAssetBundleOptions.AppendHashToAssetBundleName
](
https://docs.unity3d.com/ScriptReference/BuildAssetBundleOptions.AppendHashToAssetBundleName.html
)
,以便清理掉该文件的旧缓存。默认32位长度,可通过导出选项中
`Bundle名中Hash长度`
来自定义。比如游戏自己计算了crc,可将
`Bundle名中Hash长度`
设置为crc长度。
1.
文件名需要带上hash
[
BuildAssetBundleOptions.AppendHashToAssetBundleName
](
https://docs.unity3d.com/ScriptReference/BuildAssetBundleOptions.AppendHashToAssetBundleName.html
)
,以便清理掉该文件的旧缓存。默认32位长度,可通过导出选项中
`Bundle名中Hash长度`
来自定义。比如游戏自己计算了crc,可将
`Bundle名中Hash长度`
设置为crc长度。
2.
配置到不自动缓存文件类型中的文件,不会自动缓存,默认值是json,比如addressable打包后生成StreamingAssets/aa/WebGL/catalog.json,这个文件不会自动缓存。
2.
配置到不自动缓存文件类型中的文件,不会自动缓存,默认值是json,比如addressable打包后生成StreamingAssets/aa/WebGL/catalog.json,这个文件不会自动缓存。
3.
开发者工具上可以打开文件系统查看缓存文件
3.
开发者工具上可以打开文件系统查看缓存文件
...
@@ -70,3 +86,5 @@ defaultReleaseSize: 清理时,默认额外清理的大小,单位Bytes,1MB
...
@@ -70,3 +86,5 @@ defaultReleaseSize: 清理时,默认额外清理的大小,单位Bytes,1MB
缓存文件在usr目录下
缓存文件在usr目录下
<img
src=
'../image/cache_path.png'
>
<img
src=
'../image/cache_path.png'
>
4.
真机安卓缓存目录:data/com.tencent.mm/MicroMsg/wxanewfiles/随机ID(根据最近使用时间判断是哪个目录)
Design/Transform.md
浏览文件 @
383cad12
...
@@ -97,7 +97,7 @@ Appid -- 小游戏appid
...
@@ -97,7 +97,7 @@ Appid -- 小游戏appid
CDN -- 游戏资源CDN
CDN -- 游戏资源CDN
projectName -- 小游戏项目名
projectName -- 小游戏项目名
Orientation -- 游戏方向
Orientation -- 游戏方向
maxStorage -- 最大内存
maxStorage -- 最大内存
,修改此值需要联系研发助手开通权限,否则无效
DST -- 导出路径
DST -- 导出路径
// 启动Loader设置
// 启动Loader设置
bgImageSrc -- 背景图/封面图
bgImageSrc -- 背景图/封面图
...
...
Design/UsingPreload.md
浏览文件 @
383cad12
...
@@ -38,4 +38,5 @@ let managerConfig = {
...
@@ -38,4 +38,5 @@ let managerConfig = {
## 注意事项
## 注意事项
1.
预下载所有文件总体积应控制在合理范围内,通常可以3~5MB左右的内容。
1.
预下载所有文件总体积应控制在合理范围内,通常可以3~5MB左右的内容。
2.
文件数量应控制在10个以内,在此阶段最多只能允许10个并发,超过将会排队。
2.
文件数量应控制在10个以内,在此阶段最多只能允许10个并发,超过将会排队。
3.
UnityLoader插件已经考虑到业务会重复请求预下载的文件,游戏逻辑依然按未使用预下载的异步加载逻辑,无需做其他处理。如果预下载完成UnityLoader会立即构造网络数据返回,业务无感知。
3.
UnityLoader插件已经考虑到业务会重复请求预下载的文件,游戏逻辑依然按未使用预下载的异步加载逻辑,无需做其他处理。如果预下载完成UnityLoader会立即构造网络数据返回,业务无感知。
\ No newline at end of file
4.
添加到预下载列表中的文件,需是插件会自动缓存的文件,否则会导致下载浪费,预下载无效,详见
[
资源缓存
](
FileCache.md
)
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录