void Check() { Assets.Initialize(delegate { var path = Utility.GetRelativePath4Update(versionsTxt); if (!File.Exists(path)) { var asset = Assets.LoadAsync(Utility.GetWebUrlFromDataPath(versionsTxt), typeof(TextAsset)); asset.completed += delegate { if (asset.error != null) { OnError(asset.error); return; } var dir = Path.GetDirectoryName(path); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } File.WriteAllText(path, asset.text); LoadVersions(asset.text); asset.Release(); }; } else { LoadVersions(File.ReadAllText(path)); } }, OnError); progress += OnProgress; state = State.Checking; }
private void Complete() { Versions.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 = Utility.GetRelativePath4Update(versionsTxt); if (File.Exists(path)) { File.Delete(path); } File.WriteAllText(path, sb.ToString()); Assets.Initialize(delegate { if (completed != null) { completed(); } }, OnError); state = State.Completed; message = string.Format("{0} files has update.", _downloads.Count); return; } if (completed != null) { completed(); } message = "nothing to update."; state = State.Completed; }