void DoInit() { DefaultUI.SetLoadingStatusTip(DefaultUI.dataMap.Get(4).content);//数据读取中… var loadCfgSuccess = SystemConfig.Init(); if (!loadCfgSuccess) { ForwardLoadingMsgBox.Instance.ShowRetryMsgBox(DefaultUI.dataMap[53].content, (isOk) => { if (isOk) DoInit(); else Application.Quit(); }); return; } if (SystemSwitch.ReleaseMode) { //第一次导出资源 ResourceIndexInfo.Instance.Init(Application.streamingAssetsPath + "/ResourceIndexInfo.txt", () => { //如果是完整包(判断ResourceIndexInfo.txt是否存在),再判断apk的资源版本是否比本地资源版本高,如果高删除MogoResource和version.xml if (ResourceIndexInfo.Instance.Exist()) { LoggerHelper.Debug("-------------------------Exist ResourceIndexInfo.txt--------------------------"); var localVer = Utils.LoadFile(SystemConfig.VersionPath); var localVersion = VersionManager.Instance.GetVersionInXML(localVer); var pkgVer = Resources.Load(SystemConfig.VERSION_URL_KEY) as TextAsset; var pkgVersion = VersionManager.Instance.GetVersionInXML(pkgVer.text); if (pkgVersion.ResouceVersionInfo.Compare(localVersion.ResouceVersionInfo) > 0) { //删除version.xml if (File.Exists(SystemConfig.VersionPath)) File.Delete(SystemConfig.VersionPath); //删除MogoResource文件夹 var mogoResroucesPath = SystemConfig.ResourceFolder.Substring(0, SystemConfig.ResourceFolder.Length - 1); if (Directory.Exists(mogoResroucesPath)) Directory.Delete(mogoResroucesPath, true); //删除后再导出version if (!File.Exists(SystemConfig.VersionPath)) { var ver = Resources.Load(SystemConfig.VERSION_URL_KEY) as TextAsset; if (ver != null) XMLParser.SaveText(SystemConfig.VersionPath, ver.text); } } } var go = new StreamingAssetManager(); go.AllFinished = () => { LoggerHelper.Debug("firstExport finish,start checkversion"); if (SystemSwitch.UseFileSystem) { try { MogoFileSystem.Instance.Init(); } catch (Exception ex) { LoggerHelper.Except(ex); } } VersionManager.Instance.Init(); VersionManager.Instance.LoadLocalVersion(); CheckVersion(CheckVersionFinish); }; go.FirstExport(); }); } else { SystemConfig.LoadServerList(); VersionManager.Instance.Init(); VersionManager.Instance.LoadLocalVersion(); gameObject.AddComponent("MogoInitialize"); IsRunOnAndroid = false; gameObject.AddComponent("PlatformSdkManager"); } }
void DoInit() { DefaultUI.SetLoadingStatusTip(DefaultUI.dataMap.Get(4).content);//数据读取中… var loadCfgSuccess = SystemConfig.Init(); if (!loadCfgSuccess) { ForwardLoadingMsgBox.Instance.ShowRetryMsgBox(DefaultUI.dataMap[53].content, (isOk) => { if (isOk) { DoInit(); } else { Application.Quit(); } }); return; } if (SystemSwitch.ReleaseMode) { //第一次导出资源 ResourceIndexInfo.Instance.Init(Application.streamingAssetsPath + "/ResourceIndexInfo.txt", () => { //如果是完整包(判断ResourceIndexInfo.txt是否存在),再判断apk的资源版本是否比本地资源版本高,如果高删除MogoResource和version.xml if (ResourceIndexInfo.Instance.Exist()) { Debug.Log("-------------------------Exist ResourceIndexInfo.txt--------------------------"); var localVer = Utils.LoadFile(SystemConfig.VersionPath); var localVersion = VersionManager.Instance.GetVersionInXML(localVer); var pkgVer = Resources.Load(SystemConfig.VERSION_URL_KEY) as TextAsset; var pkgVersion = VersionManager.Instance.GetVersionInXML(pkgVer.text); if (pkgVersion.ResouceVersionInfo.Compare(localVersion.ResouceVersionInfo) > 0) { //删除version.xml if (File.Exists(SystemConfig.VersionPath)) { File.Delete(SystemConfig.VersionPath); } //删除MogoResource文件夹 var mogoResroucesPath = SystemConfig.ResourceFolder.Substring(0, SystemConfig.ResourceFolder.Length - 1); if (Directory.Exists(mogoResroucesPath)) { Directory.Delete(mogoResroucesPath, true); } //删除后再导出version if (!File.Exists(SystemConfig.VersionPath)) { var ver = Resources.Load(SystemConfig.VERSION_URL_KEY) as TextAsset; if (ver != null) { XMLParser.SaveText(SystemConfig.VersionPath, ver.text); } } } } var go = new StreamingAssetManager(); go.AllFinished = () => { Debug.Log("firstExport finish,start checkversion"); if (SystemSwitch.UseFileSystem) { try { MogoFileSystem.Instance.Init(); } catch (Exception ex) { Debug.LogException(ex); } } VersionManager.Instance.Init(); VersionManager.Instance.LoadLocalVersion(); CheckVersion(CheckVersionFinish); }; go.FirstExport(); }); } else { SystemConfig.LoadServerList(); VersionManager.Instance.Init(); VersionManager.Instance.LoadLocalVersion(); //UnityEngineInternal.APIUpdaterRuntimeServices.AddComponent(gameObject, "Assets/Plugins/Init/Driver.cs (187,13)", "MogoInitialize"); //if (ass.GetType("MogoInitialize") != null) //gameObject.AddComponent(ass.GetType("MogoInitialize")); var t = System.Type.GetType("MogoInitialize,Assembly-CSharp"); var addedComponent = gameObject.AddComponent(t); IsRunOnAndroid = false; gameObject.AddComponent <PlatformSdkManager>(); } }
void CheckVersion(Action callback) { #if UNITY_EDITOR ResourceIndexInfo.Instance.Init(Application.streamingAssetsPath + "/ResourceIndexInfo.txt", () => { if (ResourceIndexInfo.Instance.Exist()) { var localVer = Utils.LoadFile(SystemConfig.VersionPath); var localVersion = VersionManager.Instance.GetVersionInXML(localVer); var pkgVer = Resources.Load(SystemConfig.VERSION_URL_KEY) as TextAsset; var pkgVersion = VersionManager.Instance.GetVersionInXML(pkgVer.text); if (pkgVersion.ResouceVersionInfo.Compare(localVersion.ResouceVersionInfo) > 0) { if (File.Exists(SystemConfig.VersionPath)) { File.Delete(SystemConfig.VersionPath); } var mogoResroucesPath = SystemConfig.ResourceFolder.Substring(0, SystemConfig.ResourceFolder.Length - 1); if (Directory.Exists(mogoResroucesPath)) { Directory.Delete(mogoResroucesPath, true); } if (!File.Exists(SystemConfig.VersionPath)) { var ver = Resources.Load(SystemConfig.VERSION_URL_KEY) as TextAsset; if (ver != null) { XMLParser.SaveText(SystemConfig.VersionPath, ver.text); } } } } var go = new StreamingAssetManager(); go.AllFinished = () => { MogoFileSystem.Instance.Init(); Action <bool> fileDecompress = (finish) => { Driver.Invoke(() => { if (finish) { DefaultUI.SetLoadingStatusTip(DefaultUI.dataMap.Get(3).content);//正在更新本地文件 } else { DefaultUI.SetLoadingStatusTip(DefaultUI.dataMap.Get(4).content);//恢复成“数据读取中” } }); }; Action <int, int, string> taskProgress = (total, index, filename) => { Driver.Invoke(() => { DefaultUI.SetLoadingStatusTip(DefaultUI.dataMap.Get(2).content, index + 1, total, filename); }); }; Action <int, long, long> progress = (ProgressPercentage, TotalBytesToReceive, BytesReceived) => { Driver.Invoke(() => { DefaultUI.Loading(ProgressPercentage); }); }; Action <Exception> error = (ex) => { ForwardLoadingMsgBox.Instance.ShowRetryMsgBox(DefaultUI.dataMap[54].content, (isOk) => { if (isOk) { CheckVersion(callback); } else { Application.Quit(); } }); Debug.LogException(ex); }; DefaultUI.SetLoadingStatusTip(DefaultUI.dataMap.Get(1).content); VersionManager.Instance.CheckVersion(fileDecompress, taskProgress, progress, () => { Driver.Invoke(callback); }, error); }; go.FirstExport(); }); #else callback(); #endif }
void CheckVersion(Action callback) { #if !UNITY_EDITOR ResourceIndexInfo.Instance.Init(Application.streamingAssetsPath + "/ResourceIndexInfo.txt", () => { if (ResourceIndexInfo.Instance.Exist()) { var localVer = Utils.LoadFile(SystemConfig.VersionPath); var localVersion = VersionManager.Instance.GetVersionInXML(localVer); var pkgVer = Resources.Load(SystemConfig.VERSION_URL_KEY) as TextAsset; var pkgVersion = VersionManager.Instance.GetVersionInXML(pkgVer.text); if (pkgVersion.ResouceVersionInfo.Compare(localVersion.ResouceVersionInfo) > 0) { if (File.Exists(SystemConfig.VersionPath)) File.Delete(SystemConfig.VersionPath); var mogoResroucesPath = SystemConfig.ResourceFolder.Substring(0, SystemConfig.ResourceFolder.Length - 1); if (Directory.Exists(mogoResroucesPath)) Directory.Delete(mogoResroucesPath, true); if (!File.Exists(SystemConfig.VersionPath)) { var ver = Resources.Load(SystemConfig.VERSION_URL_KEY) as TextAsset; if (ver != null) XMLParser.SaveText(SystemConfig.VersionPath, ver.text); } } } var go = new StreamingAssetManager(); go.AllFinished = () => { MogoFileSystem.Instance.Init(); Action<bool> fileDecompress = (finish) => { Driver.Invoke(() => { if (finish) DefaultUI.SetLoadingStatusTip(DefaultUI.dataMap.Get(3).content);//正在更新本地文件 else DefaultUI.SetLoadingStatusTip(DefaultUI.dataMap.Get(4).content);//恢复成“数据读取中” }); }; Action<int, int, string> taskProgress = (total, index, filename) => { Driver.Invoke(() => { DefaultUI.SetLoadingStatusTip(DefaultUI.dataMap.Get(2).content, index + 1, total, filename); }); }; Action<int, long, long> progress = (ProgressPercentage, TotalBytesToReceive, BytesReceived) => { Driver.Invoke(() => { DefaultUI.Loading(ProgressPercentage); }); }; Action<Exception> error = (ex) => { ForwardLoadingMsgBox.Instance.ShowRetryMsgBox(DefaultUI.dataMap[54].content, (isOk) => { if (isOk) CheckVersion(callback); else Application.Quit(); }); LoggerHelper.Except(ex); }; DefaultUI.SetLoadingStatusTip(DefaultUI.dataMap.Get(1).content); VersionManager.Instance.CheckVersion(fileDecompress, taskProgress, progress, () => { Driver.Invoke(callback); }, error); }; go.FirstExport(); }); #else callback(); #endif }