Esempio n. 1
0
 public void Start(BaseState <T> initialState)
 {
     CurrentState = new ReactiveProperty <BaseState <T> >(initialState);
     BevoreStateChange.Execute(CurrentState.Value);
     CurrentState.Value.Enter(this);
     AfterStateChange.Execute(initialState);
 }
Esempio n. 2
0
        public bool GoToState(BaseState <T> state)
        {
            if (!CurrentState.Value.ValidNextStates.Contains(state.GetType()) ||
                !CurrentState.Value.Exit())
            {
                return(false);
            }

            BevoreStateChange.Execute(state);

            CurrentState.Value = state;
            CurrentState.Value.Enter(this);

            AfterStateChange.Execute(state);

            return(true);
        }
Esempio n. 3
0
 protected virtual void OnAfterStateChange()
 {
     AfterStateChange.Invoke(this);
 }