Exemplo n.º 1
0
        private byte[] LoadStreamAsset(string path)
        {
            var fullPath = Application.streamingAssetsPath + "/" + path;

            byte[] data = null;
            if (fullPath.Contains("://"))
            {
                if (!DPlatform.IsEditorPlatform() && DPlatform.IsAndroidPlatform())
                {
                    data = DodLibUtil.GetDodLib().LoadStreamAssetFile(fullPath);
                }
            }
            else
            {
                data = AssetBundleUtil.ReadFile(fullPath);
            }

            return(data);
        }
        public IEnumerator CheckUpdate(bool repairClient, StartupUI startUI)
        {
            m_svrVerInfo = null;

            //获取当前的版本
            string fullUrl = DPlatform.GetCheckVersionUrl(repairClient);

            BLogger.Info("version check:{0}", fullUrl);

            WWWEx wwwEx = WWWEx.Init(15f);

            yield return(StartCoroutine(wwwEx.Request(fullUrl)));

            if (wwwEx.isTimeOut)
            {
                AssetVersionMgr.Instance.error = StartupTextConfigMgr.Instance.GetText(StartupTextDefine.ID_STARTUP_CHECK_UPDATE_TIMEOUT);

                BLogger.Warning("url reueqest timeout: {0}", fullUrl);
                yield break;
            }

            WWW www = wwwEx.result;

            if (www.error != null)
            {
                BLogger.Warning("check version update error: " + www.error);
                string wwwerror = www.error;
                www.Dispose();
                AssetVersionMgr.Instance.error = StartupTextConfigMgr.Instance.GetText(StartupTextDefine.ID_STARTUP_CHECK_UPDATE_WWW_ERROR, wwwerror);
                yield break;
            }

            if (startUI != null)
            {
                startUI.ShowText(StartupTextConfigMgr.Instance.GetText(StartupTextDefine.ID_STARTUP_GAME_ETNERING));
            }

            Dictionary <string, object> verJson = (Dictionary <string, object>)MiniJSON.Json.Deserialize(www.text);

            if (verJson == null || verJson.Count == 0)
            {
                BLogger.Warning("parse version json data error: {0}", www.text);
                AssetVersionMgr.Instance.error =
                    StartupTextConfigMgr.Instance.GetText(StartupTextDefine.ID_STARTUP_CHECK_UPDATE_JSON_ERROR, 1);

//                 DBugly.ReportException("json data error", "request error url:" + fullUrl, "parse version json data error: " + www.text);
                www.Dispose();
                yield break;
            }

            try
            {
                m_svrVerInfo = ParseVerInfo(verJson);
            }
            catch (Exception e)
            {
                BLogger.Warning("parse ver info failed:{0}", e.ToString());
                DBugly.ReportException("parse ver info", "request error url:" + fullUrl, "parse ver info failed: " + e.ToString());
                AssetVersionMgr.Instance.error =
                    StartupTextConfigMgr.Instance.GetText(StartupTextDefine.ID_STARTUP_CHECK_UPDATE_JSON_ERROR, 2);
                m_svrVerInfo = null;
            }

            www.Dispose();
        }