Unity GameFramework加载资源流程:
加载资源(LoadAsset)
检查资源(CheckAsset)
AssetInfo是资源信息,ResourceInfo是资源对应的AB包信息,在单机包初始化资源或热更包下载前检查资源时,会根据本地的version.dat或服务端的version.dat、Packed的list.dat、根据已下载资源的信息本地生成的list.dat,缓存AssetInfo、ResourceInfo信息,因此据此判断资源是否存在
开始加载资源(LoadAsset)
创建加载资源任务 → 遍历、加载依赖资源 → 检查依赖资源 → 创建依赖资源加载任务 ->遍历、加载依赖资源的依赖资源 → ...
以上过程递归,添加该资源及其所有依赖资源的加载任务到任务池,接下来在Update中执行加载任务
任务池Update
遍历执行中的任务(ProcessRunningTasks)
如果执行完成,则重置、释放任务Agent
遍历等待中的任务(ProcessWaitingTasks)
如果有等待的任务及空余任务代理,则分配任务代理
开始任务前,前置判断:
等待(HasToWait):资源正在加载、其依赖资源还未加载、其对应的ab包正在加载
取消当前任务代理,继续等待
完成(Done):资源池中已有该资源
移除当前任务
继续