protected void InitializeState(BState <TEnum> state, TEnum[] allEnumValues) { foreach (TEnum e in allEnumValues) { if (state.Id.Equals(e)) { continue; } this.SetupActionForMethod(state.TransitionToNextStateIdKey(e)); } this.SetupActionForMethod(state.EnterKey()); this.SetupActionForMethod(state.TickKey()); this.SetupActionForMethod(state.FixedTickKey()); this.SetupActionForMethod(state.ExitKey()); }
protected virtual void Update() { _remainingTimeInState -= Time.deltaTime; if (_remainingTimeInState <= 0) { if (_currentState == null) { Debug.LogError("BasicFiniteStateMachine::Tick - current state null (did you forget to set the start state?)"); } else { if (_currentState.CanTransitionWithTime()) { this.AdvanceCurrentState(); } } } this.CallActionForMethod(_currentState.TickKey()); }