提交 383cad12 编写于 作者: Z zhangjunkunn

docs: 更新资源缓存相关文档

上级 cdbe308b
...@@ -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(根据最近使用时间判断是哪个目录)
...@@ -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 -- 背景图/封面图
......
...@@ -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.
先完成此消息的编辑!
想要评论请 注册