前言
时隔俩月,继续学习GF~
资源更新流程
目前的我学习的版本好像和这个有点出入,比如checkversion后会更新是否需要更新进入updateVersion和checkResource两个流程
ProcedureCheckVersion
OnEnter
订阅webrequest成功或者失败的事件
向服务器请求版本信息
其中GameEntry.BuiltinData.BuildInfo.CheckVersionUrl在Config文件夹下的同名文件中可以进行配置
OnWebRequestSuccess事件
解析版本信息,将版本信息反序列化为versionInfo类(此处的版本e不知道是何时赋值的,可能是在OnEnter中请求版本信息中进行赋值)
如果需要强制更新,就弹出UI,我们给UI事件赋值,Confirm则是跳转至官网更新全新客户端
如果不需要强制更新客户端而是资源热更新,则检查版本资源列表,校验本地客户端和下载到的资源列表的版本号,返回结果在update中用的到
因为是dll,所以看不到更深入的源码,有空就用源码换一下dll试试
OnLeave
取消订阅事件
OnUpdate
记录下反序列化得来的数据,根据检查版本号得到的bool值,我们判断是否需要更新来进入不同的流程
ProcedureUpdateVersion
OnInit
创建回调函数集要用于资源更新的某个函数
OnEnter
进行版本更新并且移除记录的数据
(这些记录的数据是干嘛用的?可以在调用资源更新的函数参数中看到)
这些应该是资源更新所需的数据,在看完源码后应该会有更深的理解
最后在资源更新结束调用success的回调后进入checkresources的流程
ProcedureCheckResources
使用可更新模式并检查资源,我们需要传入检查资源完成时的回调函数
回调也就是更新一些数据以及打印日志
如果需要进行资源更新就进入更新资源流程
ProcedureUpdateResources
OnEnter
初始化一些数据,订阅对应事件
判断是否处于wifi,如果不处于wifi就弹出ui询问是否更新,否则就直接更新
StartUpdateResources
先生成一个UI,上面应该是显示进度条之类的
调用更新资源的函数并传入更新完毕的回调
然后根据我们一开始订阅的两个事件
进行UI进度条的更新以及资源列表的更新,这些均在我们调用上面UpdateResources后会自动回调
最后进入Preload流程,下回分解