Пример #1
0
        public override void Exit()
        {
            base.Exit();

            ActorModelCullManager.GetInstance().Reset();

            foreach (var behaviour in Behaviours)
            {
                behaviour.Value.Exit();
            }

            Game.GetInstance().UnsubscribeNetNotify(NetMsg.MSG_NWAR_INIT_INFO, HandleServerData);
            Game.GetInstance().UnsubscribeNetNotify(NetMsg.MSG_NWAR_ALL_READY, HandleServerData);

            //ClientEventMgr.Instance.UnsubscribeClientEvent((int)ClientEvent.CE_STATUS_TRANSFER_AUTO_ENDED, OnPlayerTransferAutoEnded);

            InstanceManager.GetInstance().InstanceInfo = null;
            InstanceManager.GetInstance().MapInfo      = null;

            Actor player = Game.GetInstance().GetLocalPlayer();

            if (player == null)
            {
                return;
            }

            player.gameObject.transform.parent = null;
            //player.enabled = true;
        }
Пример #2
0
        public override void Enter(params object[] param)
        {
            if (mInitChildState != null)
            {
                this.SetChild(mInitChildState);
            }
            else
            {
                GameDebug.LogError("LuaInstanceState's Child State is null.");
            }

            m_PlayerAttributes = new Dictionary <UnitID, ActorAttributeData>();

            Game.GetInstance().SubscribeNetNotify(NetMsg.MSG_NWAR_INIT_INFO, HandleServerData);
            Game.GetInstance().SubscribeNetNotify(NetMsg.MSG_NWAR_ALL_READY, HandleServerData);

            //ClientEventMgr.Instance.SubscribeClientEvent((int)ClientEvent.CE_STATUS_TRANSFER_AUTO_ENDED, OnPlayerTransferAutoEnded);

            // 重设Input的引用计数
            GameInput.Instance.ResetInputRef();
            UnityEngine.EventSystems.EventSystem eventSys = xc.ui.ugui.UIManager.Instance.MainCtrl.EventSystemCom;
            if (eventSys != null)
            {
                eventSys.enabled = GameInput.Instance.GetEnableInput();
            }

            // 等map load之后才能移动
            GameInput.Instance.EnableInput(false);

            uint instanceID = SceneHelp.Instance.CurSceneID;

            // 配置表信息
            var dbInstance = DBManager.GetInstance().GetDB <DBInstance>();
            var dbMap      = DBManager.GetInstance().GetDB <DBMap>();

            InstanceManager.GetInstance().InstanceInfo = dbInstance.GetInstanceInfo(instanceID);
            InstanceManager.GetInstance().MapInfo      = dbMap.GetMapInfo(SceneHelp.GetFirstMapIdByInstanceId(instanceID));

            foreach (var behaviour in Behaviours)
            {
                behaviour.Value.Enter(param);
            }

            ActorModelCullManager.GetInstance().Reset();

            InstanceManager.Instance.ResetInstanceData();

            base.Enter(param);
        }
Пример #3
0
        /// <summary>
        /// 游戏数据重置,在断线重连时ignore_reconnect设置为true
        /// </summary>
        /// <param name="ignore_reconnect"></param>
        public void Reset(bool ignore_reconnect = false)
        {
            mAllSystemInited = false;

            // 初始化单件对象,在计时器、表格和网络数据初始化之后
            if (ignore_reconnect == false)
            {
                TimerManager.GetInstance().Reset();
            }
            DecimalTimerManager.GetInstance().Reset();
            UIManager.GetInstance().Reset();
            NpcManager.GetInstance().Reset();
            ItemManager.GetInstance().Reset(ignore_reconnect);
            DialogManager.GetInstance().Reset();
            InstanceManager.GetInstance().Reset(ignore_reconnect);
            InstanceDropManager.GetInstance().Reset();
            LocalPlayerManager.Instance.Reset(ignore_reconnect);
            RedPointDataMgr.Instance.Reset();
            LockIconDataMgr.Instance.Reset();
            NewMarkerDataMgr.Instance.Reset();
            if (ignore_reconnect == false)
            {
                RockCommandSystem.Instance.Reset();
            }
            CooldownManager.Instance.Reset();
            ShadowManager.Instance.Reset();
            GuideManager.GetInstance().Reset();
            SysConfigManager.GetInstance().Reset();
            SysPreviewManager.GetInstance().Reset();
            CullManager.GetInstance().Reset();
            MailManager2.Instance.Reset();
            LockTargetManager.Instance.Reset();
            InterObjectManager.Instance.Reset();
            FriendsManager.Instance.Reset(ignore_reconnect);
            TeamManager.Instance.Reset(ignore_reconnect);
            SkillHoleManager.Instance.Reset();
            SkillManager.Instance.Reset();
            TimelineManager.Instance.Reset();
            TaskManager.Instance.Reset();
            HookSettingManager.Instance.Reset();
            ShieldManager.Instance.Reset();
            GuildLeagueManager.Instance.Reset();
            MarryManager.Instance.Reset();
            SpanServerManager.Instance.Reset();
            if (ignore_reconnect == false)
            {
                UINotice.GetInstance().Reset();
                NetReconnect.Instance.Reset();
            }

            DBGuide db_guide = DBManager.GetInstance().GetDB <DBGuide>();

            db_guide.Reset();
            DBGuideStep db_guide_step = DBManager.GetInstance().GetDB <DBGuideStep>();

            db_guide_step.Reset();

            LuaScriptMgr.Instance.Reset(ignore_reconnect);
            CustomDataMgr.Instance.Reset();
            ChargeManager.Instance.Reset();
            AudioManager.Instance.Reset();
        }