41 lines
2.6 KiB
Plaintext
41 lines
2.6 KiB
Plaintext
热更配置
|
||
1,将【" {项目根路径}/BundlesCache/{平台}/updateinfo.json" 】放入外网下载路径
|
||
2,将【" {项目根路径}/Bundles/{平台}/version_v{每个Build配置的版本号}.json" 】放入外网下载路径
|
||
3,将【" {项目根路径}/Bundles/{平台}/{Build配置}.json" 】放入外网下载路径
|
||
4,将第三步对应文件夹放入外网下载路径
|
||
|
||
项目应用:
|
||
1,初始化 Assets.InitializeAsync()
|
||
XAsset 初始化流程:
|
||
0,调用RuntimeInitializeHandler.cs文件
|
||
1,读取streamingAssetsPath/playerassets.json
|
||
2,如果有这个文件,读取streamingAssetsPath/version.json文件
|
||
3,检查streamingAssetsPath/version.json, 把里面的所有【{Build配置名_hash}.json】文件全部下载到persistentDataPath目录
|
||
4,确保所有文件下载完,发生错误则直接退出初始化
|
||
5,如果persistentDataPath/version.json的版本新于streamingAssetsPath/version.json,将persistentDataPath/version.json里的所有文件加入文件地址管理, 并没有确保所有文件是否存在
|
||
2,下载更新文件 updateinfo.json 直接内存读取
|
||
3,下载updateinfo中对应版本的version.json 保存到temporaryCachePath。
|
||
version.json相当于build的配置文件
|
||
4,通过 ProcedureCheckGameVersion 下载随包资源,如果随包资源发生改变才下载。
|
||
1),当version文件中,包含随包资源,即preloadPacks中有值时,只会下载随包资源
|
||
2),通过VersionsRequest.cs获取version中所有变动的Build的json文件。
|
||
- 通过比对json,维护最新版Build的json文件
|
||
- 这一步,完善Assets.Versions中的所有文件管理
|
||
分包检查机制:
|
||
1,点击分包下载,首先下载分包内文件
|
||
2,文件下载完后,再下载分包version文件
|
||
3,这一步,查找本地是否有分包的version文件,检查到有分包的version文件,加入 热更最新版的分包version,如果没有,则不会进入热更
|
||
|
||
5,通过 ProcedureDownload 下载其他bundles,下载完成后,将version.json保存到persistentDataPath中。
|
||
1),检查version文件的所有Build配置是否persistentDataPath中,如果不在,下载文件
|
||
2),通过Assets.GetDownloadSizeAsync获取到需要下载的文件
|
||
下载路径:http://{服务器地址}/Bundles/{平台}/{Build配置名}/{资源名_hash}.bundle
|
||
分包检查机制:
|
||
1,如果检查到有分包的version文件,加入热更最新版的分包version,如果 没有,则不会进入热更
|
||
|
||
|
||
测试:打包时,将所有version都打进streamingassets,只是在初始化时判断是否未subpackage
|
||
|
||
|
||
|