-
-
Couldn't load subscription status.
- Fork 14
Transition
GMIKE edited this page Jun 2, 2020
·
30 revisions
You can add transition set states object or states name
//Throw exeption if transition already exist
Transition transition1 = stateMachine.AddTransition("Transition1", state1, state2);
Transition transition1 = stateMachine.AddTransition("Transition1", "state1", state2);
Transition transition1 = stateMachine.AddTransition("Transition1", state1, "state2");
Transition transition1 = stateMachine.AddTransition("Transition1", "state1", "state2");
//Return null if transition already exist
Transition transition1 = stateMachine.TryAddTransition(out bool result, "Transition1", state1, state2);
Transition transition1 = stateMachine.TryAddTransition(out bool result, "Transition1", "state1", state2);
Transition transition1 = stateMachine.TryAddTransition(out bool result, "Transition1", state1, "state2");
Transition transition1 = stateMachine.TryAddTransition(out bool result, "Transition1", "state1", "state2");You can add transition from this state
//Throw exeption if transition already exist
//Add transition from state1 to state2
Transition transition1 = state1.AddTransitionFromThis("Transition1", state2);
Transition transition1 = state1.AddTransitionFromThis("Transition1", "state2");
//Return null if transition already exist
Transition transition1 = state1.TryAddTransitionFromThis(out bool result, "Transition1", state2);
Transition transition1 = state1.TryAddTransitionFromThis(out bool result, "Transition1", "state2");You can add transition to this state
//Throw exeption if transition already exist
//Add transition from state1 to state2
Transition transition1 = state2.AddTransitionToThis("Transition1", state1);
Transition transition1 = state2.AddTransitionToThis("Transition1", "state1");
//Return null if transition already exist
Transition transition1 = state2.TryAddTransitionToThis(out bool result, "Transition1", state1);
Transition transition1 = state2.TryAddTransitionToThis(out bool result, "Transition1", "state1");//Throw exeption if transition not found
Transition transition1 = stateMachine.GetTransition("Transition1");
//Return null if transition not found
Transition transition1 = stateMachine.TryGetTransition("Transition1", out bool result);You can get all transitions from this state
//From state machine
//Throw exeption if transitions not found
Dictionary<string, Transition> transitions = stateMachine.GetTransitionsFromState(state1);
Dictionary<string, Transition> transitions = stateMachine.GetTransitionsFromState("State1");
//Return empty dictionary if transitions not found
Dictionary<string, Transition> transitions = stateMachine.TryGetTransitionsFromState(state1, out bool result);
Dictionary<string, Transition> transitions = stateMachine.TryGetTransitionsFromState("State1", out bool result);
//From state
//Throw exeption if transitions not found
Dictionary<string, Transition> transitions = state1.GetTransitionsFromThis();
//Return empty dictionary if transitions not found
Dictionary<string, Transition> transitions = state1.TryGetTransitionsFromThis(out bool result);You can get all transitions to this state
//From state machine
//Throw exeption if transitions not found
Dictionary<string, Transition> transitions = stateMachine.GetTransitionsToState(state2);
Dictionary<string, Transition> transitions = stateMachine.GetTransitionsToState("State2");
//Return empty dictionary if transitions not found
Dictionary<string, Transition> transitions = stateMachine.GetTransitionsToState(state2, out bool result);
Dictionary<string, Transition> transitions = stateMachine.GetTransitionsToState("State2", out bool result);
//From state
//Throw exeption if transitions not found
Dictionary<string, Transition> transitions = state2.GetTransitionsToThis();
//Return empty dictionary if transitions not found
Dictionary<string, Transition> transitions = state2.TryGetTransitionsToThis(out bool result);//You can check on exists
bool Transition1IsExists = stateMachine.TransitionExists("Transition1") //Throw exeption if transition not found
stateMachine.DeleteTransition("Transition1");
stateMachine.TryDeleteTransition("Transition1");//Throw exeption if transition not found
stateMachine.DeleteTransition(transition1);
stateMachine.TryDeleteTransition(transition1);
//Throw exeption if transition already delete from state machine
transition1.Delete();
transition1.TryDelete(out bool result);Triggered on transition from state. You can set many action for one transition
void ActionOnInvoke(Transition transition, Dictionary<string, object> parameters)
{
}//you can set action with add
Transition transition1 = stateMachine.AddTransition("Transition1", state1, state2, ActionOnInvoke);
//you can set action after add
Transition transition1 = stateMachine.AddTransition("Transition1", state1, state2).OnInvoke(ActionOnInvoke);
transition1.OnInvoke(ActionOnInvoke);Transition invoke after entry and exit state (state from for transition) events
state.StateMachine.InvokeTransition("Transition1");
state.StateMachine.InvokeTransition(transition1);
transition1.Invoke();You can add parameters for invoke transition.
- Invoke Transition
- Entry State
- Exit State
Parameters it's collection of keys and values
//Example
Dictionary<string, object> parameters = new Dictionary<string, object>() { { "Key1", Value1 } };You can set parameters with invoke
StateMachine.InvokeTransition("Transition1", parameters);After invoke
StateMachine.InvokeTransition("Transition3").AddParameters(parameters);You can add parameters one by one
StateMachine.InvokeTransition("Transition3").AddParameter("Key1", Value1).AddParameter("Key2", Value1)Or mixed addition
StateMachine.InvokeTransition("Transition1", parameters).AddParameter("Key1", Value1).AddParameters(parameters2).AddParameter("Key2", Value2);