IEnumerator InitData() { UIManager.Inst.Clear(); Res.Inst.Release(); yield return(new WaitForSeconds(0.1f)); //登陆 LoginManager.Inst.Login(); while (LoginManager.Inst.loginStatus == LoginManager.LoginStatus.LOGINING) { yield return(null); } DataManager.Inst.SetDefaultValue(); GamePatcher.Patcher(); ServerDataManager.Inst.Init(); SceneLoadManager.Inst.LoadScene(SceneName.HomeScene); TableBI.InitTime(LoginManager.Inst.InitStepCostTime); }
/// <summary> /// 获取最新的版本信息 /// </summary> /// <param name="upgradeInfo"></param> /// <returns></returns> public IEnumerator Upgrade(GameController.UpgradeInfo upgradeInfo) { //yield break; if (!AssetBundleConfig.Inst.UseAssetBundle) { yield break; } //请求服务器版本信息 bool finishCheckVersion = false; DataContainer dataContainer = new DataContainer(); VersionInfoBody vb = new VersionInfoBody(URLConfig.AppVersion); vb.assetVersion = this._versionInfo.Version; HttpRequestTool.SendMessage(vb, (sucessData) => { DebugUtil.Log("appversion sucess:" + sucessData); JSONNode jsonNode = JSONNode.Parse(sucessData); latestAssetUrl = jsonNode["assetUrl"]; if (string.IsNullOrEmpty(assetUrl)) { assetUrl = latestAssetUrl; } if (upgradeInfo != null) { upgradeInfo.appUrl = jsonNode["appUrl"]; upgradeInfo.assetUrl = latestAssetUrl; upgradeInfo.assetUpdateType = jsonNode["assetUpdateType"]; upgradeInfo.appUpdateType = jsonNode["appUpdateType"]; upgradeInfo.appVersion = jsonNode["appVersion"]; upgradeInfo.assetVersion = jsonNode["assetVersion"]; if (upgradeInfo.appUpdateType == 1 || upgradeInfo.appUpdateType == 2) { upgradeInfo.noticeTitle = jsonNode["appNotice"]["noticeTitle"]; upgradeInfo.noticeContent = jsonNode["appNotice"]["noticeContent"]; TableBI.Version_Updating(vb.appVersion, upgradeInfo.appVersion, vb.assetVersion, upgradeInfo.assetVersion); } else if (upgradeInfo.assetUpdateType == 1) { upgradeInfo.noticeTitle = jsonNode["assetNotice"]["noticeTitle"]; upgradeInfo.noticeContent = jsonNode["assetNotice"]["noticeContent"]; TableBI.Version_Updating(vb.appVersion, upgradeInfo.appVersion, vb.assetVersion, upgradeInfo.assetVersion); } } finishCheckVersion = true; }, (failData) => { DebugUtil.LogError("appversion fail:" + failData); finishCheckVersion = true; }, null, false); //等待版本信息 while (!finishCheckVersion) { yield return(null); } }
private IEnumerator OnReceiveServerData(string playData, string uid, Action <bool> callback = null) { if (!string.IsNullOrEmpty(playData)) { JSONNode storageJson = JSONNode.Parse(playData); if (storageJson != null && storageJson["StorageAccountInfo"] != null) { int storageVersion = storageJson["StorageAccountInfo"]["_StorageVersion"]; int storageId = storageJson["StorageAccountInfo"]["_StorageId"]; string storageDevId = storageJson["StorageAccountInfo"]["_DevId"]; int localStorageVersion = StorageManager.Inst.GetStorage <StorageAccountInfo>().StorageVersion; int localStorageId = StorageManager.Inst.GetStorage <StorageAccountInfo>().StorageId; string localDevid = StorageManager.Inst.GetStorage <StorageAccountInfo>().DevId; if (string.IsNullOrEmpty(localDevid)) { //本地没有数据,自动使用服务端数据 StorageManager.Inst.SetData(playData, false); } else if (storageVersion > localStorageVersion) { //服务端版本更高,则用服务端数据 StorageManager.Inst.SetData(playData, false); } else { //使用本地数据 } // else if (localDevid == storageDevId) // { // //自动使用本地数据 // } // else // { // //用户选择是否覆盖,(数据设备号不一样) // //UISelectGameData uiSelectGameData = UIManager.Inst.ShowUI(UIModuleEnum.UISelectGameData) as UISelectGameData; // //while (!UISelectGameData.close) // //{ // // yield return null; // //} // // //try // //{ // // if (UISelectGameData.selectedServer) // // { // // StorageManager.Inst.SetData(playData); // // } // // DebugUtil.Log("=========user server UId:" + StorageManager.Inst.GetStorage<StorageAccountInfo>().Uid); // //} // //catch (Exception e) // //{ // // DebugUtil.LogError("LoginManager.OnReceiveServerData fail: " + playData); // //} // } SetDevidAndUid(uid); } } else { SetDevidAndUid(uid); } TableBI.Login(SystemClock.Now); loginStatus = LoginStatus.LOGINSUCESS; if (callback != null) { callback.Invoke(true); } ReSendNeedSessionHttpPacket(); yield break; }