Esempio n. 1
0
        public void Update()
        {
            if (m_Machine != null)
            {
                m_Machine.Update();
            }

            // 发送心跳包
            if (Game.Instance.Connected)// 连上了服务器才发送心跳包
            {
                float cur_time = Time.time;
                if (cur_time > m_NextHeartTime)
                {
                    OnHeartTimeUpdate();
                    m_NextHeartTime = cur_time + m_HeartInterval;
                }

                // 需要给附连接也发送心跳包,以防止被服务器踢下线
                if (NetClient.HasCrossClient && (NetClient.GetCrossClient().NetState == NetClient.ENetState.ES_Connected || Game.GetInstance().GetLocalPlayer() != null))
                {
                    if (cur_time > m_NextCrossHeartTime)
                    {
                        OnCrossHeartTimeUpdate();
                        m_NextCrossHeartTime = cur_time + m_HeartInterval;
                    }
                }
            }
        }
Esempio n. 2
0
        public void Update()
        {
            if (!mIsInited)
            {
                return;
            }

            if (Input.GetKeyUp(KeyCode.Escape))
            {
                Debug.Log("KeyCode.Escape pressed");
#if UNITY_IPHONE
                IBridge bridge = DBOSManager.getDBOSManager().getBridge();
                if (bridge != null && bridge.isBridgeEnable())
                {
                    // 退出游戏的时候通知sdk
                    SDKControler.getSDKControler().sendRoleInfo2SDK((int)SDKControler.RoleEvent.EXIT_GAME);
                    bridge.checkBackBtnAction();
                }
#else
                var exit_game = true;
                if (xc.Const.Region == RegionType.KOREA)
                {
                    if (UIManager.Instance.TryCloseAllWindow())
                    {
                        exit_game = false;
                    }
                }
                if (exit_game)
                {
                    Debug.Log("KeyCode.Escape pressed exit_game = true");
                    IBridge bridge = DBOSManager.getDBOSManager().getBridge();
                    if (bridge != null && bridge.isBridgeEnable())
                    {
                        // 退出游戏的时候通知sdk
                        SDKControler.getSDKControler().sendRoleInfo2SDK((int)SDKControler.RoleEvent.EXIT_GAME);
                        bridge.checkBackBtnAction();
                    }
                }
#endif
            }

            m_GameMachine.Update();
            UIManager.Instance.Update();

            // 场景加载完成的检查
            SceneLoadingUpdate();

            TimerManager.GetInstance().Update();
            DecimalTimerManager.GetInstance().Update();
            EffectManager.GetInstance().Update();
            TargetPathManager.Instance.Update();
            TaskManager.Instance.Update();
            InstanceManager.Instance.Update();
            UINotice.Instance.Update();
            TeamManager.Instance.Update();
            MainmapManager.Instance.Update();
            TimelineManager.Instance.Update();
            ShadowManager.Instance.Update();
            GuideManager.Instance.Update();

    #if !UNITY_MOBILE_LOCAL
            VoiceManager.Instance.Update();
    #endif

            NetReconnect.Instance.Update();
            if (ChangeRoleManager.Instance.IsChangeRole)
            {
                ChangeRoleManager.Instance.Update();
            }

#if UNITY_EDITOR
            TestUnit.Instance.Update();
#endif
            Uranus.Runtime.UranusManager.Instance.Update();
            MarryFireworkManager.Instance.Update();

            NetworkManager.Instance.Update();
            if (((int)GameMode & (int)EGameMode.GM_Net) == (int)EGameMode.GM_Net)
            {
                NetClient.GetBaseClient().Update();
                if (NetClient.CrossToggle)
                {
                    NetClient.GetCrossClient().Update();
                }
            }

            // 协程更新
            // 最好在其他模块都更新好,再更新协程
            SafeCoroutine.CoroutineManager.Update(Time.deltaTime);
        }