private IEnumerator Start() { IFsmManager fsmManager = GameFrameworkEntry.GetModule <IFsmManager>(); ProcedureBase[] procedures = new ProcedureBase[m_ProcedureClassNames.Count]; for (int i = 0; i < m_ProcedureClassNames.Count; i++) { Type procedureType = Utility.Assembly.GetTypeWithinLoadedAssemblies(m_ProcedureClassNames[i]); if (procedureType == null) { throw new GameFrameworkException(string.Format("Can not find procedure type '{0}'.", m_ProcedureClassNames[i])); } procedures[i] = Activator.CreateInstance(procedureType) as ProcedureBase; if (procedures[i] == null) { throw new GameFrameworkException(string.Format("Can not create procedure instance '{0}'.", m_ProcedureClassNames[i])); } if (m_ProcedureClassNames[i] == m_FirstProcedureClassName) { m_FirstProcedure = procedures[i]; } } m_ProcedureManager.Initialize(fsmManager, procedures); yield return(new WaitForEndOfFrame()); StartProcedure(); }
/// <summary> /// 初始化流程管理器。 /// </summary> /// <param name="fsmManager">有限状态机管理器。</param> /// <param name="procedures">流程管理器包含的流程。</param> public void Register(params ProcedureBase[] procedures) { m_FsmManager = GameFrameEntry.GetModule <FsmManager>(); if (m_FsmManager == null) { throw new GameFrameworkException("FSM manager is invalid."); } m_ProcedureFsm = m_FsmManager.CreateFsm(this, procedures); }
/// <summary> /// 初始化流程管理器。 /// </summary> /// <param name="fsmManager">有限状态机管理器。</param> /// <param name="procedures">流程管理器包含的流程。</param> public void Initialize(IFsmManager fsmManager, params ProcedureBase[] procedures) { if (fsmManager == null) { throw new GameFrameworkException("FSM manager is invalid."); } m_ProcedureFsm = fsmManager.CreateFsm(this, procedures); }
public void Initialize(IFsmManager fsmManager, params ActionBase[] actions) { if (null == fsmManager) { throw new GameFrameworkException("FSM manager is invalid."); } m_fsmManager = fsmManager; m_ActionFsm = m_fsmManager.CreateFsm(this, actions); }
public void Initialize(IFsmManager fsmManager, params ProcessBase[] processs) { if (fsmManager == null) { throw new Exception("FSM manager无效"); } m_FsmManager = fsmManager; m_ProcessFsm = m_FsmManager.CreateFsm(this, processs); }
/// <summary> /// 游戏框架组件初始化 /// </summary> protected override void Awake() { base.Awake(); this.m_FsmManager = GameFrameworkEntry.GetModule <IFsmManager>(); if (this.m_FsmManager == null) { Log.Fatal("FSM manager is invalid."); return; } }
/// <summary> /// 初始化流程管理器。 /// </summary> /// <param name="fsmManager">有限状态机管理器。</param> /// <param name="procedures">流程管理器包含的流程。</param> public void Initialize(IFsmManager fsmManager) { if (fsmManager == null) { Logger.LogError("FSM manager is invalid."); } m_FsmManager = fsmManager; m_ProcedureFsm = m_FsmManager.CreateFsm <IProcedureManager>(this); }
/// <summary> /// 游戏框架组件初始化。 /// </summary> protected override void Awake() { base.Awake(); m_FsmManager = AshEntry.GetModule <IFsmManager>(); if (m_FsmManager == null) { Log.Fatal("FSM manager is invalid."); return; } }
protected override void Awake() { base.Awake(); m_FsmManager = GameFrameworkEntry.GetModule <IFsmManager>(); if (m_FsmManager == null) { Log.Fatal("[FsmComponent.Awake] FSM manager is invalid."); return; } }
/// <summary> /// 关闭并清理流程管理器。 /// </summary> public void OnDestroy() { if (fsmManager != null) { if (fsm != null) { fsmManager.DestroyFsm(fsm); fsm = null; } fsmManager = null; } }
/// <summary> /// 关闭并清理流程管理器。 /// </summary> internal override void Shutdown() { if (m_FsmManager != null) { if (m_ProcedureFsm != null) { m_FsmManager.DestroyFsm <IProcedureManager>(); m_ProcedureFsm = null; } m_FsmManager = null; } }
/// <summary> /// 关闭并清理流程管理器。 /// </summary> public override void OnDispose() { if (_fsmManager != null) { if (_stageFsm != null) { _fsmManager.DestroyFsm(_stageFsm); _stageFsm = null; } _fsmManager = null; } }
/// <summary> /// 关闭并清理状态管理器 /// </summary> public void ShutDown() { if (m_FsmManager != null) { if (m_StateFsm != null) { m_FsmManager.DestroyFsm(m_StateFsm); m_StateFsm = null; } m_FsmManager = null; } }
public override bool Shutdown() { if (m_FsmManager != null) { if (m_ProcedureFsm != null) { m_FsmManager.DestroyFsm(m_ProcedureFsm); m_ProcedureFsm = null; } m_FsmManager = null; } return(base.Shutdown()); }
public void Init(Player player, IFsmManager FSM, params PlayerStateBase[] states) { if (FSM == null) { throw new GameFrameworkException("FSM manager is invalid."); } m_FsmManager = FSM; fsm = m_FsmManager.CreateFsm(player.name.Value, player, states); }
/// <summary> /// 初始化状态管理器 /// </summary> /// <param name="fsmManager">有限状态机管理器.</param> /// <param name="states">状态管理器所包含的状态.</param> public void Initialize(IFsmManager fsmManager, CharacterControllerBase owner, params CharacterStateBase[] states) { if (fsmManager == null) { throw new GameFrameworkException("FSM manager is invalid."); } if (owner == null) { throw new GameFrameworkException("FSM Owner is invalid."); } this.Owner = owner; m_FsmManager = fsmManager; m_StateFsm = m_FsmManager.CreateFsm(this, states); }
/// <summary> /// 初始化流程管理器。 /// </summary> /// <param name="fsmManager">有限状态机管理器。</param> /// <param name="gameStages">流程管理器包含的流程。</param> public StageManager(GameContext context) { var fsmManager = context.GetModule <IFsmManager>(); if (fsmManager == null) { throw new GameException("FSM manager is invalid."); } _fsmManager = fsmManager; var stages = AssemblyCollection .GetTypes() .Where(t => t.IsSubclassOf(typeof(StageBase))) .Select(t => (StageBase)Activator.CreateInstance(t)) .ToArray(); _stageFsm = _fsmManager.CreateFsm(this, stages); }
private IEnumerator Start() { IFsmManager fsmManager = GameFrameworkEntry.GetModule <IFsmManager>(); ProcedureBase[] procedures = new ProcedureBase[m_AvailableProcedureTypeNames.Length]; for (int i = 0; i < m_AvailableProcedureTypeNames.Length; i++) { Type procedureType = Utility.Assembly.GetTypeWithinLoadedAssemblies(m_AvailableProcedureTypeNames[i]); if (procedureType == null) { Log.Error("Can not find procedure type '{0}'.", m_AvailableProcedureTypeNames[i]); yield break; } procedures[i] = Activator.CreateInstance(procedureType) as ProcedureBase; if (procedures[i] == null) { Log.Error("Can not create procedure instance '{0}'.", m_AvailableProcedureTypeNames[i]); yield break; } if (m_EntranceProcedureTypeName == m_AvailableProcedureTypeNames[i]) { m_EntranceProcedure = procedures[i]; } } if (m_EntranceProcedure == null) { Log.Error("Entrance procedure is invalid."); yield break; } m_ProcedureManager.Initialize(fsmManager, procedures); yield return(new WaitForEndOfFrame()); m_ProcedureManager.StartProcedure(m_EntranceProcedure.GetType()); }
public IEnumerator FsmTestWithEnumeratorPasses() { // Use the Assert class to test conditions. // yield to skip a frame AshUnityEntry.New(); IFsmManager fsmManager = AshEntry.GetModule <IFsmManager>(); FsmOwer fsmOwer = new FsmOwer(); Status1 status1 = new Status1(); Status2 status2 = new Status2(); //fsmManager.CreateFsm<FsmOwer>( fsmOwer, status1, status2); fsmManager.CreateFsm <FsmOwer>("Test", fsmOwer, status1, status2); Log.Debug("有限状态机的数量时{0}", fsmManager.Count); IFsm <FsmOwer> fsm = fsmManager.GetFsm <FsmOwer> ("Test"); Assert.IsNotNull(fsm); VarString v = new VarString(); v.SetValue("Variable data"); // v.Value = "Variable data"; fsm.SetData("data", v); fsm.Start <Status1> (); Assert.AreEqual(fsm.CurrentState, status1); yield return(new WaitForSeconds(1)); fsm.FireEvent(this, 1, "userData"); // Assert.AreEqual (fsm.CurrentState, status2); yield return(null); }
/// <summary> /// 初始化流程管理器的新实例。 /// </summary> public ProcedureManager() { m_FsmManager = null; m_ProcedureFsm = null; }
/// <summary> /// 初始化流程管理器的新实例。 /// </summary> public ProcedureManager(IFsmManager fsmManager) { this.fsmManager = fsmManager; }
public ActionManager() { m_fsmManager = null; m_ActionFsm = null; }
public CharacterMotion() { m_FsmManager = null; m_StateFsm = null; }