示例#1
0
        public void GotoNullState()
        {
            if (_current != null)
                _current.EndState(null);

            _current = null;
        }
示例#2
0
        public void AddState(string asId, AIBrainState aState)
        {
            string useId = asId.ToUpper();
            aState.Initialize(this);

            if (_brainStateTable.ContainsKey(asId))
                _brainStateTable[asId] = aState;
            else
                _brainStateTable.Add(asId, aState);
        }
示例#3
0
        public virtual void GotoState(string asId)
        {
            string useId = asId.ToUpper();
            AIBrainState nextState;
            if (_brainStateTable.ContainsKey(useId))
            {
                AIBrainState lastState = null;
                nextState = _brainStateTable[useId];
                if (_current != null)
                {
                    lastState = _current;
                    _current.EndState(nextState);
                }

                _current = nextState;
                _current.BeginState(lastState);
            }
        }
 public void EndState(AIBrainState aNextState)
 {
     CustomEndState(aNextState);
     ClearEvents();
 }
 public virtual void CustomEndState(AIBrainState aNextState)
 {
 }
 public virtual void BeginState(AIBrainState aPreviousState)
 {
 }