Exemple #1
0
    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");
        }
    }
Exemple #2
0
    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>();
        }
    }
Exemple #3
0
    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
    }
Exemple #4
0
    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
    }