예제 #1
0
        public override void End()
        {
            SparxHub.Instance.PushManager.OnScheduleLocalNotification -= ScheduleLocalNotification;
            SparxHub.Instance.ChatManager.OnConnected -= RegisterChatChannels;

            DestroyFlowControlObject();

            HudLoadManager.DestroyAllHud();
            SceneLoadManager.DestroyAllLevel();
            PlayerManagerForFilter.Dispose();
            NpcManager.Dispose();
            MainLandLogic.Dispose();
            CombatLogic.Dispose();
            InputBlockerManager.Instance.ForceUnlockAll();
            LoadingSpinner.Destroy();
            FusionAudio.StopMusic();
            FusionAudio.StopAmbience();
            ChatController.instance.Clean();
        }
예제 #2
0
        public override IEnumerator Start()
        {
            GameStateDownload.LogWithTime("LTGameStateLogin.Start=====>");
            if (ILRDefine.IS_FX)
            {
                if (!GameEngine.Instance.TextureDic.ContainsKey(GameEngine.Instance.LoginBGPath))
                {
                    yield return(GameEngine.Instance.SetStreamingAssetsBG(GameEngine.Instance.LoginBGPath));
                }
                if (!GameEngine.Instance.TextureDic.ContainsKey(GameEngine.Instance.BrandPath))
                {
                    yield return(GameEngine.Instance.SetStreamingAssetsBG(GameEngine.Instance.BrandPath));
                }
            }
            else if (Application.identifier.Equals("com.mkhx.xinkuai"))
            {
                if (!GameEngine.Instance.TextureDic.ContainsKey(GameEngine.Instance.BrandPath))
                {
                    yield return(GameEngine.Instance.SetStreamingAssetsBG(GameEngine.Instance.BrandPath));
                }
            }

            // wait network available
            #region wait network available
            while (Application.internetReachability == NetworkReachability.NotReachable)
            {
                yield return(GameEngine.Instance.StartCoroutine(ShowLoadingScreen()));

                yield return(GameEngine.Instance.StartCoroutine(ShowNetworkRetryDialog()));
            }
            #endregion

            // load LoginUI
            yield return(GameEngine.Instance.StartCoroutine(LoadLoginUI()));

            UIStack.Instance.ForceHideLoadingScreen();
            LoadingSpinner.Destroy();

            GameObject obj = GameObject.Find("DownloadHudUI");
            if (obj != null)
            {
                GameObject.Destroy(obj);
            }

            //清除表数据
            ClientDataUtil.OnResetTemplateManager();
            //清datalookup缓存
            DataLookupsCache.Instance.ClearCache();

            GameEngine.Instance.LoginListener.ResolveMHLoginEvent += OnResolveMHLoginEvent;
            GameEngine.Instance.LoginListener.LoginEvent          += OnLogin;
            GameEngine.Instance.LoginListener.LoginFailedEvent    += OnLoginFailed;
            GameEngine.Instance.LoginListener.UpdateEvent         += OnUpdateRequired;

            LoginManager.Instance.LoginExtraListener.ResolveAuthenticatorsEvent         += OnResolveAuthenticators;
            LoginManager.Instance.LoginExtraListener.ResolveMultipleAuthenticatorsEvent += OnResolveMultipleAuthenticators;
            LoginManager.Instance.LoginExtraListener.AuthorizedEvent += OnAuthorized;

            LoginManager.Instance.Api.ErrorHandler += OnApiError;

            //设置音效
            AudioManager.Initialize();
            //预加载主场景摄像机
            GlobalCameraData.LoadCameraData(GlobalCameraData.CAMPAIGN_VIEW_CAMERA);

            yield return(new WaitForSeconds(0.2f));//等待小段时间防止花屏

            Enumerate();

            GameStateDownload.LogWithTime("<=====LTGameStateLogin.Start");
        }