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(); } } }
public void Register(T state, ISimpleStateMachineStateBehaviour stateBehaviour) { states[state] = new SimpleStateMachineState <T>(state, stateBehaviour.OnEnter, stateBehaviour.OnExit, stateBehaviour.OnUpdate, stateBehaviour.OnFixedUpdate); }
public void Register(T state, UnityAction enter, UnityAction exit, UnityAction update, UnityAction fixedUpdate) { states[state] = new SimpleStateMachineState <T>(state, enter, exit, update, fixedUpdate); }