小游戏资源部署与缓存
收藏
我的收藏本文介绍小游戏资源部署与缓存相关内容
资源介绍
在转换完成后,会在导出路径下生成如下目录
不使用wasm分包时:
使用wasm分包时:
- •scwebgl-bundles.js - 配置文件
- •StreamingAssets
- •webgl.data - 首包资源
- •webgl.framework.js - 胶水代码
- •webgl.wasm - wasm代码包(不分包时)
- •split_main.wasm - wasm主包(分包时)
- •split_sub.wasm - wasm子包(分包时)
其他资源部署
首资源包
- •小游戏分包:因需要统计总包体大小,当导出时wasm代码brotli压缩正常的前提下,如果wasm代码+首包资源小于100MB,可使用"小游戏包内"加载,此时不需要将首包资源部署到服务器。
- •CDN:当不使用小游戏分包时,需要部署到服务器。
Assets
如果有用到纹理压缩和音频API,导出插件自动生成。将此目录部署到服务器即可
StreamingAssets
AssetBundle和Addressables资源目录。 如果是用的AA,构建时默认打包到StreamingAssets目录下。但如果是用的AB,或者自定义了bundle的生成目录,需要将bundle移动到StreamingAssets目录
资源服务器注意事项
- 1.使用 brotli 或 gzip 压缩:
- ◦如果 AssetBundle 使用未压缩格式打包,应尽量开启 brotli 或 gzip 压缩
- ◦如果 AssetBundle 使用 LZ4 格式压缩打包,则不建议开启 brotli 或 gzip 压缩,避免二次解压开销
- ◦直接部署在 CDN 上的 json, xml, csv, txt 等文本格式配置文件,应尽量开启 brotli 或 gzip 压缩
- 2.为确保不同网络条件的下载成功率,单个请求文件建议控制在 2-5 MB 以内(理论最大值为 100MB,超时默认为 60s)
- 3.跨域问题在平台内部已经做了处理:跨域问题
- 4.网络安全域名、SSL 等问题请参考文档:网络通信适配
资源更新说明
注意
对于开发者自行部署在 CDN 上的 AssetBundle 资源,需要留意 CDN 缓存机制造成的更新延迟问题。
相同路径的文件在源站修改后,一段时间后才会同步到所有边缘节点(从数小时到数天不等)。如果不同版本资源使用相同的 CDN 路径,就会导致游戏版本更新后用户仍下载到旧的资源文件。可以使用这些方法解决:
- •每次发新版本更换 CDN 资源路径,例如
version1/xxx
,version2/xxx
- •项目中的资源配置文件(例如 addressables 的
settings.json
和 catalog.json
、YooAsset 的 Version.txt
)的文件名通常是固定的,应避免这些文件使用缓存。- ◦对这些文件,可以在源站或 CDN 加上不允许缓存的 HTTP 响应头,例如
no-cache
,请自行查询对应 CDN 服务商文档进行设置。- ◦此外,通过 HTTP 请求的资源会自动缓存到本地。为避免缓存,可以将这些文件的文件名或扩展名配置在“不自动缓存的文件”中。
资源缓存