Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
    public void AddState(FsmBase newState)
    {
        if (stateCount > allStates.Length - 1)
        {
            return;
        }

        stateCount++;

        allStates[stateCount] = newState;
    }
Beispiel #3
0
        // ----------------------
        /// <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);
        }
Beispiel #4
0
        /// <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"));
 }
Beispiel #6
0
 /// <summary>
 /// 销毁有限状态机。
 /// </summary>
 /// <param name="fsm">要销毁的有限状态机。</param>
 /// <returns>是否销毁有限状态机成功。</returns>
 public bool DestroyFsm(FsmBase fsm)
 {
     return(m_FsmManager.DestroyFsm(fsm));
 }
Beispiel #7
0
 public MoveState(MainFsm mainFsm, FsmBase fsmBase, string name = null) : base(mainFsm, fsmBase, name)
 {
 }
Beispiel #8
0
 public IntoState(MainFsm mainFsm, FsmBase fsmBase) : base(mainFsm, fsmBase, "enter")
 {
 }
Beispiel #9
0
 public OutState(MainFsm mainFsm, FsmBase fsmBase) : base(mainFsm, fsmBase, "exit")
 {
 }
Beispiel #10
0
 public AnyState(FsmBase fsmBase)
 {
     this.fsmBase = fsmBase;
 }
Beispiel #11
0
 /// <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;
 }
Beispiel #12
0
 public void AddStatus(int statusType, FsmBase fsmBase)
 {
     fsm.Add(statusType, fsmBase);
 }
Beispiel #13
0
 public StateBase(FsmBase fsm)
 {
     _fsm = fsm;
 }
Beispiel #14
0
 public void AddState(FsmBase tmpBase)
 {
     stateIndex++;
     allState[stateIndex] = tmpBase;
 }
Beispiel #15
0
 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"));
 }