/// <summary> 构造函数 public FsmStateNode(MainFsm finiteStateMachine, FsmBase fsmBase, string name = null) : base() { _mainFsm = finiteStateMachine; this._fsm = fsmBase; this._name = name ?? this.GetType().ToString(); fsmBase.AddNode(this); }
public void AddState(FsmBase newState) { if (stateCount > allStates.Length - 1) { return; } stateCount++; allStates[stateCount] = newState; }
// ---------------------- /// <summary> 构造函数 </summary> public SubFsm(MainFsm mainFsm, string name, FsmBase fsmBelongTo = null) { this._mainFsm = mainFsm; this._fsmBelongTo = fsmBelongTo ?? mainFsm; transitionList = new List <StateTransition>(); inState = new IntoState(this._mainFsm, this); outState = new OutState(this._mainFsm, this); _currentNode = inState; this._name = name ?? this.GetType().ToString(); mainFsm.AddNode(this); }
/// <summary> 构造函数 </summary> public StateTransition(IFsmNode from, IFsmNode to, MainFsm mainFsm, FsmBase fsmBelongTo = null) { if (from == to) { //Todo Error return; } this._mainFsm = mainFsm; this.fsmBelongTo = fsmBelongTo ?? mainFsm; this.from = from; this.to = to; _conditionSet = new HashSet <Func <bool> >(); this.from.AddTransition(this); }
private void DrawFsm(FsmBase fsm) { EditorGUILayout.LabelField(Utility.Text.GetFullName(fsm.OwnerType, fsm.Name), fsm.IsRunning ? string.Format("{0}, {1} s", fsm.CurrentStateName, fsm.CurrentStateTime.ToString("F1")) : (fsm.IsDestroyed ? "Destroyed" : "Not Running")); }
/// <summary> /// 销毁有限状态机。 /// </summary> /// <param name="fsm">要销毁的有限状态机。</param> /// <returns>是否销毁有限状态机成功。</returns> public bool DestroyFsm(FsmBase fsm) { return(m_FsmManager.DestroyFsm(fsm)); }
public MoveState(MainFsm mainFsm, FsmBase fsmBase, string name = null) : base(mainFsm, fsmBase, name) { }
public IntoState(MainFsm mainFsm, FsmBase fsmBase) : base(mainFsm, fsmBase, "enter") { }
public OutState(MainFsm mainFsm, FsmBase fsmBase) : base(mainFsm, fsmBase, "exit") { }
public AnyState(FsmBase fsmBase) { this.fsmBase = fsmBase; }
/// <summary> 构造函数 public FsmState(MainFsm finiteStateMachine, FsmBase fsmBase, string name, Action onStateEnter = null, Action onStateExit = null, Action onStateUpdate = null) : base(finiteStateMachine, fsmBase, name) { this.onStateEnter = onStateEnter; this.onStateExit = onStateExit; this.onStateUpdate = onStateUpdate; }
public void AddStatus(int statusType, FsmBase fsmBase) { fsm.Add(statusType, fsmBase); }
public StateBase(FsmBase fsm) { _fsm = fsm; }
public void AddState(FsmBase tmpBase) { stateIndex++; allState[stateIndex] = tmpBase; }
private void DrawFsm(FsmBase fsm) { EditorGUILayout.LabelField(fsm.FullName, fsm.IsRunning ? Utility.Text.Format("{0}, {1:F1} s", fsm.CurrentStateName, fsm.CurrentStateTime) : (fsm.IsDestroyed ? "Destroyed" : "Not Running")); }