/// <summary> /// 4.应用更新 /// </summary> /// <param name="_information">更新信息对象</param> /// <param name="_url">远程服务器地址</param> /// <param name="_tempPath">可选:临时的下载目录,整个模块下载完成后,才会应用到持久化目录</param> /// <param name="_progressCallback">可选:进度信息回调函数</param> /// <param name="_completed">可选:在完成时回调<bool:是否完成,string:错误信息></param> /// <returns></returns> static public UAsyncOperation Apply(UUpdateInformation _information, string _url, string _tempPath = null, Action <UUpdateProgress> _progressCallback = null, Action <bool, string> _completed = null) { if (string.IsNullOrEmpty(_tempPath)) { _tempPath = _information.AssetPath; } return(new DownloadFileList(_information.FinalFiles, _url, _information.AssetPath, _tempPath, _progressCallback, _completed));; }
internal static UUpdateInformation GetInstance(string _assetPath, List <UFileVersionRemote> _versionList) { UUpdateInformation instance = new UUpdateInformation(); instance.AssetPath = _assetPath; instance.FinalFiles = _versionList; instance.Count = _versionList.Count; instance.IsUpdate = _versionList.Count > 0; ulong allBytes = 0; foreach (var v in _versionList) { allBytes += (ulong)v.Size; } instance.Bytes = allBytes; return(instance); }
/// <summary> /// 3.获取的更新信息 /// </summary> /// <param name="_assetPath">本地持久化目录</param> /// <param name="_versionList">需要参与更新的模块列表</param> /// <returns></returns> static public UUpdateInformation GetUpdateInformation(string _assetPath, List <UFileVersionRemote> _versionList) { var result = UFile.CompareFileVersion(_assetPath, _versionList); return(UUpdateInformation.GetInstance(_assetPath, result)); }