void DownloadVersion() { view.Tip.Text = "检测服务器版本"; OssMission mission = new OssMission(); ossMissions.Add(mission); mission.dir = Application.persistentDataPath + "/"; mission.Name = "versions.ini"; mission.Tip = (o) => { view.Tip.Text = "检测资源版本"; SetProgress(o.Progress); }; mission.Completed = (o) => { OssMission oss = o as OssMission; if (o.Done) { VersionCheck(); } else { view.Tip.Text = "未能找到服务器"; } ossMissions.Remove(oss); }; mission.Run(); mission = new OssMission(); ossMissions.Add(mission); mission.dir = Application.persistentDataPath + "/"; mission.Name = "HotFix.dll"; mission.Completed = (o) => { ossMissions.Remove(o as OssMission); }; mission.Run(); mission = new OssMission(); ossMissions.Add(mission); mission.dir = Application.persistentDataPath + "/"; mission.Name = "baseUI.bytes"; mission.Completed = (o) => { ossMissions.Remove(o as OssMission); }; mission.Run(); }
void VersionCheck() { string dic = Application.persistentDataPath + "/"; string tempath = dic + "versions.ini"; INIReader ini = new INIReader(); ini.LoadFromFile(tempath); string key = "win"; if (Application.platform == RuntimePlatform.IPhonePlayer) { key = "ios"; } else if (Application.platform == RuntimePlatform.Android) { key = "and"; } var sec = ini.FindSection(key); var values = sec.values; for (int i = 0; i < values.Count; i++) { var kv = values[i]; string value = PlayerPrefs.GetString(kv.key); string path = dic + kv.key; if (value != kv.value | !File.Exists(path)) { OssMission mission = new OssMission(); mission.dir = Application.persistentDataPath + "/"; mission.Name = kv.key; mission.Version = kv.value; ossMissions.Add(mission); mission.Tip = (o) => { view.Tip.Text = "正在下载资源:" + o.Name; SetProgress(o.Progress); }; mission.Completed = (o) => { OssMission oss = o as OssMission; ossMissions.Remove(oss); PlayerPrefs.SetString(oss.Name, oss.Version); if (oss.Name.Contains(".lzma")) { if (oss.Done) { DecompressLZMA(oss.Name, oss.Version); } } }; } else if (kv.key.Contains(".lzma")) { string str = kv.key; str = str.Replace(".lzma", ""); value = PlayerPrefs.GetString(str); if (value != kv.value) { DecompressLZMA(kv.key, kv.value); } } } }