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; }
private async CTask ShowWarUI(ProcedureOwner procedureOwner) { warUi = Mgr.UI.Show <WarUI>(); warUi.procedure = this; await warUi.Await(); LoadingUI.Hide(); }
private async CTask ShowHomeUI(ProcedureOwner procedureOwner) { homeUi = Mgr.UI.Show <HomeUI>(); homeUi.procedure = this; await homeUi.Await(); LoadingUI.Hide(); }
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); }
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(); } }
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(); } }
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>(); }
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(); // } }
protected internal override void OnEnter(ProcedureOwner procedureOwner) { base.OnEnter(procedureOwner); Log.Info("进入了热更资源加载流程"); }
protected internal override void OnEnter(ProcedureOwner procedureOwner) { base.OnEnter(procedureOwner); login = false; Mgr.UI.Show <LoginUI>().procedure = this; }
protected internal override void OnEnter(ProcedureOwner procedureOwner) { base.OnEnter(procedureOwner); exitWar = false; ShowWarUI(procedureOwner).Run(); }
/// <summary> /// 状态销毁时调用。 /// </summary> /// <param name="procedureOwner">流程持有者。</param> protected internal override void OnDestroy(ProcedureOwner procedureOwner) { base.OnDestroy(procedureOwner); }
protected internal override void OnInit(ProcedureOwner procedureOwner) { base.OnInit(procedureOwner); //TODO:在这里配置场景ID与切换到对应流程的方法 //m_TargetProcedureChange.Add((int)SceneId.TestScene, () => ChangeState<ProcedureHotfixTest>(procedureOwner)); }
/// <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); }
/// <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."); }
/// <summary> /// 进入状态时调用。 /// </summary> /// <param name="procedureOwner">流程持有者。</param> protected internal override void OnEnter(ProcedureOwner procedureOwner) { base.OnEnter(procedureOwner); Log.Info($"Enter '{GetType().FullName}' procedure."); }
/// <summary> /// 状态初始化时调用。 /// </summary> /// <param name="procedureOwner">流程持有者。</param> protected internal override void OnInit(ProcedureOwner procedureOwner) { base.OnInit(procedureOwner); }
protected internal override void OnLeave(ProcedureOwner procedureOwner, bool isShutdown) { base.OnLeave(procedureOwner, isShutdown); Mgr.UI.Close <LoginUI>(); }
protected internal override void OnLeave(ProcedureOwner procedureOwner, bool isShutdown) { base.OnLeave(procedureOwner, isShutdown); }
protected internal override void OnEnter(ProcedureOwner procedureOwner) { base.OnEnter(procedureOwner); startGame = false; ShowHomeUI(procedureOwner).Run(); }