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 = true; 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.220.239:9898/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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"; // string key = "BvyoNmnTUIqvZufqqy+GPc/ZFfsdZhkpLUQZMPRjS0yO7ir5gj50GehaWU0RG4wUhEIrgfK/GsIttHPvud4n8UJSPqAPvJuApGsbExUMCr+m6b+fV+m/XyShE/P8WKIKPwwMC/ged4MVADJKShLu70eVrajd"; int rc = DxyVest.Start(key);//AppVest.init("553c12676eb80b82183e0944df97cd19", "K8N/nk3cAxhGo7Oy0yoP/Ye5jcQUaMf+8+AutonLIoCXTbHXSHJ/D8W3/iIBHJq/4SABnAF7RvIeNRnF+x+wjB6cB1TEwIUviviQlofNvM4qJFLH55ON85n2pFBhSGW3qLF/"); if (rc != 150) //if (rc != 0) { Debug.LogError("wwwwwwwwwwwwwwwwwwwwwww init failed"); ShowTip("GF init failed!", () => { StartCoroutine(CheckNet()); }); } // Debug.LogError("init successful"); conn.ip = "127.0.0.1"; conn.port = 49898; //int rc1 = AppVest.getServerIPAndPort(ref conn, "", 8077); //if (rc1 != 0) //{ // ShowTip("getServerIPAndPort failed!", () => // { // StartCoroutine(CheckNet()); // }); // yield break; //} } // init_url = "http://" + conn.ip + ":" + conn.port + "/NewFK/config/init2_1.json"; init_url = "https://yunque911.oss-cn-hangzhou.aliyuncs.com/NewFK/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}/NewFK/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); } }