Exemplo n.º 1
0
    public void Logout(bool clear_account_idx)                                                                      //登出
    {
        m_MenuStack.Clear();                                                                                        //清空当前的存档场景的栈

        SoundManager.Instance.StopSound();                                                                          //结束声音

        if (BattleBase.CurrentBattleMode != eBattleMode.None)                                                       //如果当前是某个战斗场景
        {
            UnityEngine.SceneManagement.SceneManager.UnloadScene(GetBattleSceneName(BattleBase.CurrentBattleMode)); //卸载到当前的战斗场景
            BattleBase.CurrentBattleMode = eBattleMode.None;                                                        //讲记录的战斗场景记为None
        }
        if (ChattingMain.IsInstance)                                                                                //如果没有关闭聊天功能
        {
            ChattingMain.Clear();                                                                                   //关闭聊天功能
        }
        ExceptionHandler.Instance.Reset();
        //关闭下面的游戏体
        Destroy(gameObject);
        Destroy(Tutorial.Instance.gameObject);
        Destroy(Popup.Instance.gameObject);
        Destroy(Tooltip.Instance.gameObject);
        Destroy(CodeStage.AdvancedFPSCounter.AFPSCounter.Instance.gameObject);
        Destroy(Networking.Instance.gameObject);

        if (MetapsAnalyticsScript.Instance != null)
        {
            MetapsAnalyticsScript.Clear();
        }
        if (ExceptionHandler.IsInit)
        {
            Destroy(GameObject.Find("ExceptionHandler"));
        }

        //析构网络相关
        Network.Uninit();
        Network.ClearInstance();
        Network.GameServer.ClearSession();


        //清楚记录的数据
        SaveDataManger.Instance.Clear();

        SHSavedData.AccessToken = 0;

        if (clear_account_idx == true && SHSavedData.LoginPlatform != LoginPlatform.Guest && SHSavedData.LoginPlatform != LoginPlatform.Betakey)
        {
            SHSavedData.AccountIdx    = -1;
            SHSavedData.LoginPlatform = PacketEnums.LoginPlatform.Invalid;
        }

        //         if (SHSavedData.LoginPlatform == LoginPlatform.Facebook)// && Facebook.Unity.FB.IsLoggedIn)
        //             return;
        //             //Facebook.Unity.FB.LogOut();

        if (SHSavedData.LoginPlatform == LoginPlatform.GooglePlay && UM_GameServiceManager.Instance.IsConnected)
        {
            UM_GameServiceManager.Instance.Disconnect();
        }

        Network.ShowIndicator();
#if UNITY_EDITOR
        UnityEngine.SceneManagement.SceneManager.LoadScene("title", UnityEngine.SceneManagement.LoadSceneMode.Single);
#else
        UnityEngine.SceneManagement.SceneManager.LoadScene("Splash", UnityEngine.SceneManagement.LoadSceneMode.Single);
#endif
        //UnityEngine.SceneManagement.SceneManager.UnloadScene("Main");
    }
Exemplo n.º 2
0
 static public void Clear()
 {
     Destroy(m_Instance.gameObject); m_Instance = null;
 }