private void Transition(TTrigger trigger, TState stateTo) { SetInternalState(PlainStateMachineInternalState.Transitioning); _protectedNextState = stateTo; TState previous = CurrentState; OnBeforeStateChanges?.Invoke(previous, trigger, stateTo); ExitCurrentState(); CurrentState = stateTo; _currentStateObject = GetStateById(CurrentState); OnStateChanged?.Invoke(previous, trigger, stateTo); EnterCurrentState(); _protectedNextState = default; }
private void NotifyBeforeStateChangesEvent(TState sourceTarget, TTrigger trigger, TState targetState) { OnBeforeStateChanges?.Invoke(sourceTarget, trigger, targetState); }