예제 #1
0
    public void ChangeState(T state)
    {
        if (_curState != null && _curState.exit != null)
        {
            _curState.exit();
        }

        //Debug.Log(curState + " => " + state);
        preState         = curState;
        curState         = state;
        _curState        = null;
        firstUpdate      = true;
        firstFixedUpdate = true;
        if (states.TryGetValue(state, out _curState))
        {
            if (_curState.enter != null)
            {
                _curState.enter();
            }
        }
    }
예제 #2
0
 public void Register(T state, ISimpleStateMachineStateBehaviour stateBehaviour)
 {
     states[state] = new SimpleStateMachineState <T>(state, stateBehaviour.OnEnter, stateBehaviour.OnExit, stateBehaviour.OnUpdate, stateBehaviour.OnFixedUpdate);
 }
예제 #3
0
 public void Register(T state, UnityAction enter, UnityAction exit, UnityAction update, UnityAction fixedUpdate)
 {
     states[state] = new SimpleStateMachineState <T>(state, enter, exit, update, fixedUpdate);
 }