Exemplo n.º 1
0
        protected internal override void OnEnter(ProcedureOwner procedureOwner)
        {
            base.OnEnter(procedureOwner);

            SceneName       = procedureOwner.GetData <VarString>("SceneName");
            TargetProcedure = procedureOwner.GetData <VarString>("TargetProcedure");

            m_IsChangeSceneComplete = false;

            GameEntry.Event.Subscribe(LoadSceneSuccessEventArgs.EventId, OnLoadSceneSuccess);
            GameEntry.Event.Subscribe(LoadSceneFailureEventArgs.EventId, OnLoadSceneFailure);
            GameEntry.Event.Subscribe(LoadSceneUpdateEventArgs.EventId, OnLoadSceneUpdate);
            GameEntry.Event.Subscribe(LoadSceneDependencyAssetEventArgs.EventId, OnLoadSceneDependencyAsset);

            // 卸载所有场景
            string[] loadedSceneAssetNames = GameEntry.Scene.GetLoadedSceneAssetNames();
            for (int i = 0; i < loadedSceneAssetNames.Length; i++)
            {
                GameEntry.Scene.UnloadScene(loadedSceneAssetNames[i]);
            }

            // 还原游戏速度
            GameEntry.Base.ResetNormalGameSpeed();
            //根据行数据里的场景资源名加载场景
            GameEntry.Scene.LoadScene(Constant.AssetPath.Scene(SceneName), Constant.AssetPriority.SceneAsset, this);
            //m_BackgroundMusicId = drScene.BackgroundMusicId;
        }
Exemplo n.º 2
0
        private async CTask ShowWarUI(ProcedureOwner procedureOwner)
        {
            warUi           = Mgr.UI.Show <WarUI>();
            warUi.procedure = this;
            await warUi.Await();

            LoadingUI.Hide();
        }
Exemplo n.º 3
0
        private async CTask ShowHomeUI(ProcedureOwner procedureOwner)
        {
            homeUi           = Mgr.UI.Show <HomeUI>();
            homeUi.procedure = this;
            await homeUi.Await();

            LoadingUI.Hide();
        }
Exemplo n.º 4
0
        protected internal override void OnLeave(ProcedureOwner procedureOwner, bool isShutdown)
        {
            GameEntry.Event.Unsubscribe(LoadSceneSuccessEventArgs.EventId, OnLoadSceneSuccess);
            GameEntry.Event.Unsubscribe(LoadSceneFailureEventArgs.EventId, OnLoadSceneFailure);
            GameEntry.Event.Unsubscribe(LoadSceneUpdateEventArgs.EventId, OnLoadSceneUpdate);
            GameEntry.Event.Unsubscribe(LoadSceneDependencyAssetEventArgs.EventId, OnLoadSceneDependencyAsset);

            base.OnLeave(procedureOwner, isShutdown);
        }
Exemplo n.º 5
0
 protected internal override void OnUpdate(ProcedureOwner procedureOwner, float elapseSeconds,
                                           float realElapseSeconds)
 {
     base.OnUpdate(procedureOwner, elapseSeconds, realElapseSeconds);
     if (login)
     {
         login = false;
         procedureOwner.ChangeScene <ProcedureHotfix_Home>("Home").Run();
     }
 }
Exemplo n.º 6
0
        protected internal override void OnUpdate(ProcedureOwner procedureOwner, float elapseSeconds,
                                                  float realElapseSeconds)
        {
            base.OnUpdate(procedureOwner, elapseSeconds, realElapseSeconds);

            if (startGame)
            {
                startGame = false;
                procedureOwner.ChangeScene <ProcedureHotfix_War>("War").Run();
            }
        }
Exemplo n.º 7
0
        protected internal override void OnUpdate(ProcedureOwner procedureOwner, float elapseSeconds,
                                                  float realElapseSeconds)
        {
            base.OnUpdate(procedureOwner, elapseSeconds, realElapseSeconds);

            //Log.Info($"{Mgr.Config.loadCount}---{Mgr.Config.loadedCount}");
            if (!Mgr.Config.isAllLoaded)
            {
                return;
            }
            if (!Mgr.Lang.isLoaded)
            {
                return;
            }
            procedureOwner.ChangeState <ProcedureHotfix_Login>();
        }
Exemplo n.º 8
0
        protected internal override void OnUpdate(ProcedureOwner procedureOwner, float elapseSeconds,
                                                  float realElapseSeconds)
        {
            base.OnUpdate(procedureOwner, elapseSeconds, realElapseSeconds);

            if (!m_IsChangeSceneComplete)
            {
                return;
            }

            Type type = Type.GetType("Fuse.Hotfix." + TargetProcedure);

            procedureOwner.ChangeState(type);
            //ChangeState(procedureOwner, type);

            //根据切换到的目标场景ID进行对应的流程切换
            //            if (m_TargetProcedureChange.ContainsKey(m_TargetSceneId))
            //            {
            //                m_TargetProcedureChange[m_TargetSceneId]?.Invoke();
            //            }
        }
Exemplo n.º 9
0
        protected internal override void OnEnter(ProcedureOwner procedureOwner)
        {
            base.OnEnter(procedureOwner);

            Log.Info("进入了热更资源加载流程");
        }
Exemplo n.º 10
0
 protected internal override void OnEnter(ProcedureOwner procedureOwner)
 {
     base.OnEnter(procedureOwner);
     login = false;
     Mgr.UI.Show <LoginUI>().procedure = this;
 }
Exemplo n.º 11
0
 protected internal override void OnEnter(ProcedureOwner procedureOwner)
 {
     base.OnEnter(procedureOwner);
     exitWar = false;
     ShowWarUI(procedureOwner).Run();
 }
Exemplo n.º 12
0
 /// <summary>
 /// 状态销毁时调用。
 /// </summary>
 /// <param name="procedureOwner">流程持有者。</param>
 protected internal override void OnDestroy(ProcedureOwner procedureOwner)
 {
     base.OnDestroy(procedureOwner);
 }
Exemplo n.º 13
0
 protected internal override void OnInit(ProcedureOwner procedureOwner)
 {
     base.OnInit(procedureOwner);
     //TODO:在这里配置场景ID与切换到对应流程的方法
     //m_TargetProcedureChange.Add((int)SceneId.TestScene, () => ChangeState<ProcedureHotfixTest>(procedureOwner));
 }
Exemplo n.º 14
0
 /// <summary>
 /// 状态轮询时调用。
 /// </summary>
 /// <param name="procedureOwner">流程持有者。</param>
 /// <param name="elapseSeconds">逻辑流逝时间,以秒为单位。</param>
 /// <param name="realElapseSeconds">真实流逝时间,以秒为单位。</param>
 protected internal override void OnUpdate(ProcedureOwner procedureOwner, float elapseSeconds, float realElapseSeconds)
 {
     base.OnUpdate(procedureOwner, elapseSeconds, realElapseSeconds);
 }
Exemplo n.º 15
0
 /// <summary>
 /// 离开状态时调用。
 /// </summary>
 /// <param name="procedureOwner">流程持有者。</param>
 /// <param name="isShutdown">是否是关闭状态机时触发。</param>
 protected internal override void OnLeave(ProcedureOwner procedureOwner, bool isShutdown)
 {
     base.OnLeave(procedureOwner, isShutdown);
     Log.Info($"Leave '{GetType().FullName}' procedure.");
 }
Exemplo n.º 16
0
 /// <summary>
 /// 进入状态时调用。
 /// </summary>
 /// <param name="procedureOwner">流程持有者。</param>
 protected internal override void OnEnter(ProcedureOwner procedureOwner)
 {
     base.OnEnter(procedureOwner);
     Log.Info($"Enter '{GetType().FullName}' procedure.");
 }
Exemplo n.º 17
0
 /// <summary>
 /// 状态初始化时调用。
 /// </summary>
 /// <param name="procedureOwner">流程持有者。</param>
 protected internal override void OnInit(ProcedureOwner procedureOwner)
 {
     base.OnInit(procedureOwner);
 }
Exemplo n.º 18
0
 protected internal override void OnLeave(ProcedureOwner procedureOwner, bool isShutdown)
 {
     base.OnLeave(procedureOwner, isShutdown);
     Mgr.UI.Close <LoginUI>();
 }
Exemplo n.º 19
0
 protected internal override void OnLeave(ProcedureOwner procedureOwner, bool isShutdown)
 {
     base.OnLeave(procedureOwner, isShutdown);
 }
Exemplo n.º 20
0
 protected internal override void OnEnter(ProcedureOwner procedureOwner)
 {
     base.OnEnter(procedureOwner);
     startGame = false;
     ShowHomeUI(procedureOwner).Run();
 }