using UnityEngine; using System.Collections; using System.IO; using FairyGUI; using MiniJSON; using UnityEngine.Networking; using taurus.unity; using System.Text; using System; public class VerCheck : MonoBehaviour { GComponent _version_view; public static VerCheck Instance { get; private set; } public securityConnection conn; public bool isGFF = false; public bool isDXYGFF = false; void Awake() { Instance = this; } // Use this for initialization void Start() { GameApplication.Instance.isAndroid64bit = IsAndroid64bit(); CreateVersionView(); StartCoroutine(CheckNet()); } internal void ResetGame() { CreateVersionView(); StartCoroutine(__WaitReset()); } IEnumerator __WaitReset() { var _luaClient = GameApplication.Instance.GetComponent(); UnityEngine.Object.Destroy(_luaClient); System.GC.Collect(); FontManager.Clear(); UIPackage.RemoveAllPackages(); ResourcesManager.DestroyAll(); CreateVersionView(); yield return null; StartCoroutine(CheckNet()); } void CreateVersionView() { ResourcesManager.ReadAssetConfig("base/embed"); UIPackage.AddPackage("base/embed/ui/Hotupdate"); if (_version_view != null) _version_view.Dispose(); _version_view = null; _version_view = UIPackage.CreateObjectFromURL("ui://Hotupdate/Version").asCom; GRoot.inst.AddChildAt(_version_view,0); _version_view.x = (GRoot.inst.width - _version_view.width) / 2; Debug.LogError(Application.persistentDataPath); } public bool IsAndroid64bit() { #if UNITY_ANDROID && !UNITY_EDITOR if (IntPtr.Size == 8) { return true; } return false; #else return false; #endif } IEnumerator CheckNet() { string json_data = string.Empty; isDXYGFF= false; isGFF = false; //string init_url = "http://8.138.94.89:9898/NewFK/config/init2_1.json"; //江西 //string init_url = "http://8.138.255.70:9898/NewFK/config/init2_1.json"; string init_url = "http://110.40.188.229:6789/NewFK/config/init2_1.json"; //公用 //string init_url = "http://124.222.76.196:6789/NewFK/config/init2_1.json"; //公用 //string init_url = "http://101.35.26.131:6789/NewFK/config/init2_1.json"; if (isGFF==false&&isDXYGFF==false) { } else { if (isGFF) { int rc = AppVest.init("8ef91e7e799b5851a8ce810aae0c697c", "U5ayF4voVvRh1ElqBIVUCR9dSFskPGvCkfreFxdxzi39hoU0faqZWjFzC90Cta50egaQatCbPxm6XTlvi2+o++PrSozoZ+HUUY0y8tBloMWaOYQX59SAhjA/DyIDHJgGbE1I"); if (rc != 0) { // Debug.LogError("init failed"); ShowTip("GF init failed!", () => { StartCoroutine(CheckNet()); }); } // Debug.LogError("init successful"); conn.ip = ""; conn.port = 0; int rc1 = AppVest.getServerIPAndPort(ref conn, "", 5021); if (rc1 != 0) { ShowTip("getServerIPAndPort failed!", () => { StartCoroutine(CheckNet()); }); yield break; } } else { string key = "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"; int rc = DxyVest.Start(key);//AppVest.init("553c12676eb80b82183e0944df97cd19", "K8N/nk3cAxhGo7Oy0yoP/Ye5jcQUaMf+8+AutonLIoCXTbHXSHJ/D8W3/iIBHJq/4SABnAF7RvIeNRnF+x+wjB6cB1TEwIUviviQlofNvM4qJFLH55ON85n2pFBhSGW3qLF/"); if (rc != 150) { Debug.LogError("wwwwwwwwwwwwwwwwwwwwwww init failed"); ShowTip("GF init failed!", () => { StartCoroutine(CheckNet()); }); } // Debug.LogError("init successful"); conn.ip = "127.0.0.1"; conn.port = 39898; //int rc1 = AppVest.getServerIPAndPort(ref conn, "", 8077); //if (rc1 != 0) //{ // ShowTip("getServerIPAndPort failed!", () => // { // StartCoroutine(CheckNet()); // }); // yield break; //} } init_url = "http://" + conn.ip + ":" + conn.port + "/NewFKNB/config/init2_1.json"; Debug.LogError("init_url : " + init_url); } // Debug.LogError("开始下载资源===>>>"); // Debug.LogError(init_url); //Debug.LogError("init_url============================ "+ init_url); float downTimeOut = 5; using (WWW request1 = new WWW(init_url)) { float timeOut = Time.time; float process = request1.progress; while (request1!=null && request1.isDone==false) { //Debug.LogError("wwwwwwwwwwwwwwwwwww11111111111111111111111"); if(processdownTimeOut) { ShowTip("资源配置下载失败,请检查您的网络设置!", () => { StartCoroutine(CheckNet()); }); yield break; } yield return null; } yield return request1; // Debug.LogError("request1.error"+request1.error); if (string.IsNullOrEmpty(request1.error)) { //Debug.LogError("wwwwwwwwwwwwwwwww222222222222222222222222"); json_data = request1.text; //优化 GameApplication.Instance.GameInfo = json_data; Hashtable json = Json.Deserialize(json_data) as Hashtable; //json["pack_url"] = "http://8.134.59.224:8909/NewFKtest"; Hotupdate.PackUrl = (string)json["pack_url"]; Hashtable _plat_data = null; #if UNITY_IPHONE _plat_data = json["iOS"] as Hashtable; #endif #if UNITY_ANDROID _plat_data = json["Android"] as Hashtable; #endif #if UNITY_STANDALONE _plat_data = json["Win"] as Hashtable; #endif var check = _plat_data[string.Format("check{0}", GameApplication.AppVersion.ToString())]; if (check != null && (bool)check) { GameApplication.HideSdk = true; GameApplication.Instance.accountTest = false; } Version server_version = new Version((string)_plat_data["version"]); if (!GameApplication.HideSdk) { if (GameApplication.AppVersion.max_version < server_version.max_version || (GameApplication.AppVersion.max_version == server_version.max_version && GameApplication.AppVersion.min_version < server_version.min_version)) { ShowTip("您版本需要更新!", () => { #if UNITY_ANDROID StartCoroutine(DownApp((string)_plat_data["appurl"], server_version.ToString())); #else DeleteOldPack(); Application.OpenURL((string)_plat_data["appurl"]); Application.Quit(); #endif }); yield break; } } Voice.VoiceUpload = json["voice_upload_url"] as string; Voice.VoiceDownload = json["voice_download_url"] as string; //GameApplication.PackVersion = server_version.pack_version; if (!GameApplication.Instance.buildApp) { GameApplication.AppVersion.FillData(server_version); _version_view.Dispose(); GameApplication.Instance.StartGame(); } else { StartCoroutine(CheckAssetConfig(server_version)); } } else { ShowTip("资源配置下载失败,请检查您的网络设置!", () => { StartCoroutine(CheckNet()); }); //yield break; } } } IEnumerator CheckAssetConfig(Version server_version) { GObject v_tex_info = _version_view.GetChild("tex_info"); Version local_version = Hotupdate.GetLocalVersion(string.Empty); ArrayList asset_config_list = null; string asset_config_text = null; if (local_version == null || local_version.ContainAll(server_version)) { string ac_url=""; if(isGFF==false) ac_url = string.Format("{0}/config/asset_config{1}.json", Hotupdate.PackUrl, server_version.ToString()); else ac_url = string.Format("http://{0}/NewFKNB/config/asset_config{1}.json", conn.ip + ":" + conn.port, server_version.ToString()); // Debugger.LogError("CheckAssetConfig===>>>"); // Debugger.LogError(ac_url); float downTimeOut = 5; using (var request = new WWW(ac_url)) { float timeOut = Time.time; float process = request.progress; while (request != null && request.isDone == false) { if (process < request.progress) { timeOut = Time.time; process = request.progress; } if (Time.time - timeOut > downTimeOut) { ShowTip("游戏配置下载异常,请检查您的网络设置!", () => { StartCoroutine(CheckNet()); }); yield break; } yield return null; } yield return request; if (string.IsNullOrEmpty(request.error)) { asset_config_text = request.text; asset_config_list = Json.Deserialize(asset_config_text) as ArrayList; if (asset_config_list == null) { ShowTip("游戏配置下载异常,请检查您的网络设置!", () => { StartCoroutine(CheckAssetConfig(server_version)); }); yield break; } // v_tex_info.text = "正在检查资源。。。"; GSlider _pd = _version_view.GetChild("pb_progress").asSlider; _pd.value = 0.0; bool ver_check = false; StartCoroutine(VersionUpdateCheck(asset_config_list, (progress, finish) => { _pd.value = progress * 100f; ver_check = finish; }, v_tex_info)); while (!ver_check) { yield return null; } string arv = string.Format("{0}asset_config{1}.json", ResourcesManager.PACK_PATH, server_version.ToString()); File.WriteAllText(arv, asset_config_text, System.Text.Encoding.UTF8); string rv = ResourcesManager.PACK_PATH + "version.txt"; File.WriteAllText(rv, server_version.ToString(), System.Text.Encoding.UTF8); } else { ShowTip("游戏资源下载失败,请检查您的网络设置!", () => { StartCoroutine(CheckAssetConfig(server_version)); }); yield break; } } }else { // string arv = string.Format("{0}asset_config{1}.json", ResourcesManager.PACK_PATH, server_version.ToString()); string arv =ResourcesManager.PACK_PATH+"asset_config"+server_version.ToString()+".json"; //Debug.LogError("ARV===>>>" + arv); try { asset_config_text = File.ReadAllText(arv); asset_config_list = Json.Deserialize(asset_config_text) as ArrayList; foreach (Hashtable tem in asset_config_list) { string b_path = "base/" + tem["name"]; ResourcesManager.ReadAssetConfig(b_path); } } catch (Exception s) { Debug.LogError(s.ToString()); ShowTip("游戏资源损坏,请重新安装新包!", () => { StartCoroutine(CheckAssetConfig(server_version)); }); yield break; } //IEnumerator enumerator = asset_config_list.GetEnumerator(); //try //{ // while (enumerator!=null && enumerator.MoveNext()) // { // Hashtable hashtable = (Hashtable)enumerator.Current; // string base_path = "base/" + hashtable["name"].ToString(); // ResourcesManager.ReadAssetConfig(base_path); // yield return null; // } //} //finally //{ // IDisposable disposable; // if ((disposable = (enumerator as IDisposable)) != null) // { // disposable.Dispose(); // } //} } GameApplication.AppVersion.FillData(server_version); v_tex_info.text = "正在加载资源请稍后。。"; //ResourcesManager.Init(); yield return null; _version_view.Dispose(); GameApplication.Instance.StartGame(); } /// /// 检查基本更新包 /// /// /// /// /// IEnumerator VersionUpdateCheck(ArrayList asset_config_list, System.Action onback, FairyGUI.GObject tip) { Version local_version = Version.DEFUALT; for(int i=0;i< asset_config_list.Count; ++i) { var tem = asset_config_list[i] as Hashtable; //if (GameApplication.HideSdk) //{ // if (!tem.ContainsKey("check")) continue; // if (!(bool)tem["check"]) continue; //} string b_path = "base/" + tem["name"].ToString(); Hotupdate version_update = new Hotupdate(b_path + "/", local_version, new Version((string)tem["ver"])); version_update.AssetName = b_path; version_update.HideDetail = true; #if UNITY_ANDROID && !UNITY_EDITOR //if (GameApplication.Instance.isAndroid64bit==false) //{ // if (tem["name"].ToString()=="base_script") // { // version_update.isBuild32lua = true; // } //} #endif version_update.SetTipCallback((text,callback)=> { ShowTip(text, callback); }); version_update.LoadAsset(); while (!version_update.Done) { onback(version_update.Progress, false); tip.text = version_update.TextTip; yield return null; } ResourcesManager.ReadAssetConfig(b_path); } onback(1, true); } #if UNITY_ANDROID IEnumerator DownApp(string appurl,string version) { var v_tex_info = _version_view.GetChild("tex_info"); v_tex_info.text = "正在下载新的安装包(0KB/0KB)"; var _pd = _version_view.GetChild("pb_progress").asSlider; var request = new BestHTTP.HTTPRequest(new System.Uri(appurl)); request.EnableTimoutForStreaming = false; request.UseStreaming = true; request.IsKeepAlive = true; request.Send(); var filePath = Application.persistentDataPath + "/update" + version + ".apk"; if (File.Exists(filePath)) { File.Delete(filePath); } FileStream stream = null; request.OnProgress = (originalRequest, downloaded, downloadLength) => { v_tex_info.text = string.Format("正在下载新的安装包({0}KB/{1}KB)", downloaded / 1024, downloadLength / 1024); _pd.value = (downloaded / (float)downloadLength) * 100; var fragments = originalRequest.Response.GetStreamedFragments(); if (fragments != null) { if (stream == null) { stream = File.Create(filePath); } foreach(byte[] buffer in fragments) { stream.Write(buffer, 0, buffer.Length); } } }; while (request.State < BestHTTP.HTTPRequestStates.Finished) { yield return null; } yield return new WaitForSeconds(1); stream.Dispose(); request.OnProgress = null; if (request.State == BestHTTP.HTTPRequestStates.Finished && request.Response.IsSuccess) { DeleteOldPack(); PlatformAndroid.Instance.UpdateApp(filePath); } else { ShowTip("请检查您的网络设置!", () => { StartCoroutine(DownApp(appurl, version)); }); } } #endif public void ShowTip(string text, System.Action callback) { var ctr_state = _version_view.GetController("state"); ctr_state.selectedIndex = 1; _version_view.GetChild("tex_tip").text = text; _version_view.GetChild("btn_ok").onClick.Set(() => { ctr_state.selectedIndex = 0; if (callback != null) callback(); }); } /// /// 移除本地缓存包 /// public static void DeleteOldPack() { string dir = ResourcesManager.RES_PATH; string rv = dir + "version.txt"; if (File.Exists(rv)) File.Delete(rv); if (Directory.Exists(dir)) Directory.Delete(dir, true); } }