//#if false public void Init(string msg) { h.Clear(); gResVers = new VerData[AllRes.Length]; for (int i = 0; i < AllRes.Length; i++) { gResVers[i] = new VerData(); gResVers[i].ver = 100000000; } transform.SendMessage(msg); }
static public bool CheckVer(int[] ver) { if (file != null) { file.Flush(); file.Close(); file = null; } bool needDown = false; NeedDownStep = new bool[ver.Length]; MaxVer = 0; for (int i = 0; i < ver.Length; i++) { if (ver [i] > MaxVer) { MaxVer = ver [i]; } VerData verOldData = gResVers [i]; if (verOldData.ver < ver [i]) { needDown = true; NeedDownStep [i] = true; } else { NeedDownStep [i] = false; } } if (needDown) { string fileName = System.IO.Path.Combine(Application.persistentDataPath, "downinfo"); if (File.Exists(fileName)) { var filestr = System.IO.File.ReadAllText(fileName); string[] vers = filestr.Split(','); if ((vers [0].Length > 0) && (System.Convert.ToInt32(vers [0]) == MaxVer)) { DownStep = System.Convert.ToInt32(vers [1]); } else { for (int i = 0; i < AllRes.Length; i++) { string delFile = System.IO.Path.Combine(Application.persistentDataPath, AllRes[i]); File.Delete(delFile); } File.Delete(fileName); DownStep = 0; } } else { DownStep = 0; } } return(needDown); }
IEnumerator InitFun(string msg) { // read ver streamingAssets var filePath = System.IO.Path.Combine(Application.streamingAssetsPath, "ver"); var result = ""; if (filePath.Contains("://")) { var www = new WWW(filePath); yield return(www); result = www.text; } else { result = System.IO.File.ReadAllText(filePath); } var vers = new VerData[AllRes.Length]; var resultLines = result.Split(','); for (int i = 0; i < vers.Length; i++) { VerData verData = new VerData(); verData.ver = System.Convert.ToInt32(resultLines[i]); verData.isDown = false; verData.name = AllRes[i]; vers [i] = verData; } string fileName = System.IO.Path.Combine(Application.persistentDataPath, "ver"); if (File.Exists(fileName)) { result = System.IO.File.ReadAllText(fileName); resultLines = result.Split(','); for (int i = 0; i < resultLines.Length; i++) { VerData verData = new VerData(); verData.ver = System.Convert.ToInt32(resultLines[i]); verData.isDown = true; verData.name = AllRes [i]; VerData verOldData = vers [i]; if (verData.ver > verOldData.ver) { vers[i] = verData; } } } SetProcess(10); if (h.ContainsKey("font") == false) { string fileFont = System.IO.Path.Combine(Application.streamingAssetsPath, "font"); AssetBundle ast; if (fileFont.Contains("://")) { var www = new WWW(fileFont); yield return(www); ast = www.assetBundle; } else { var a = AssetBundle.LoadFromFileAsync(fileFont); yield return(a); ast = a.assetBundle; } h.Add("font", ast); } for (int i = 0; i < vers.Length; i++) { var verData = vers [i]; bool needDo = false; if (gResVers == null) { needDo = true; } else { VerData verOldData = gResVers[i]; if (verData.ver > verOldData.ver) { needDo = true; } } SetProcess((i + 1) * 90 / vers.Length + 10); if (needDo) { if (h.ContainsKey(AllRes [i])) { AssetBundle a = h[AllRes [i]] as AssetBundle; a.Unload(false); } AssetBundle assetBundle; if (verData.isDown) { filePath = System.IO.Path.Combine(Application.persistentDataPath, AllRes [i]); assetBundle = AssetBundle.LoadFromFile(filePath); } else { filePath = System.IO.Path.Combine(Application.streamingAssetsPath, AllRes[i]); if (filePath.Contains("://")) { var www = new WWW(filePath); yield return(www); assetBundle = www.assetBundle; } else { var a = AssetBundle.LoadFromFileAsync(filePath); yield return(a); assetBundle = a.assetBundle; } } if (h.ContainsKey(verData.name)) { h[verData.name] = assetBundle; } else { h.Add(verData.name, assetBundle); } } #if UNITY_EDITOR yield return(new WaitForSeconds(0.1f)); #endif } SetProcessEnd(); gResVers = vers; transform.SendMessage(msg); }