//下载完成 private async void DownloadComplete() { DownloadTxtFile.Save(); if (_downloads.Count > 0) { for (int i = 0; i < _downloads.Count; i++) { var item = _downloads[i]; if (!item.isDone) { break; } else { if (_serverVersions.ContainsKey(item.path)) { _versions[item.path] = _serverVersions[item.path]; } } } StringBuilder sb = new StringBuilder(); foreach (var item in _versions) { sb.AppendLine(string.Format("{0}:{1}", item.Key, item.Value)); } var path = LWUtility.GetRelativePath4Update(versionsTxt); if (File.Exists(path)) { File.Delete(path); } File.WriteAllText(path, sb.ToString()); AssetsManagerRequest assetsManagerRequest = await MainManager.Instance.GetManager <AssetsManager>().InitializeAsync(); if (assetsManagerRequest.isSuccess) { onCompleted(); } else { onError(assetsManagerRequest.error); } state = State.Completed; return; } if (onCompleted != null) { onCompleted(); } state = State.Completed; }
public async void Check() { if (state != State.Wait) { return; } //不连服务器 if (!LWUtility.GlobalConfig.connServer) { AssetsManagerRequest _Request = await MainManager.Instance.GetManager <AssetsManager>().InitializeAsync(); if (_Request.isSuccess) { onCompleted(); } else { onError(_Request.error); } return; } state = State.Checking; AssetsManagerRequest request = await MainManager.Instance.GetManager <AssetsManager>().InitializeAsync(); if (request.isSuccess) { //获取本地的版本文件路径 var path = LWUtility.GetRelativePath4Update(versionsTxt); //当前不存在该文件,即第一次打开应用 if (!File.Exists(path)) { //加载StreamingAssets下的的版本文件 var asset = MainManager.Instance.GetManager <AssetsManager>().LoadAsync(LWUtility.GetWebUrlFromDataPath(versionsTxt), typeof(TextAsset)); asset.completed += delegate { if (asset.error != null) { LoadVersions(string.Empty); return; } var dir = Path.GetDirectoryName(path); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } //将StreamingAssets下的版本文件写入到persistentDataPath File.WriteAllText(path, asset.text); LoadVersions(asset.text); asset.Release(); }; } else { LoadVersions(File.ReadAllText(path)); } } else { // 本地没有文件,直接更新 LoadVersions(string.Empty); } }