Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 16
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 existTransitiontransition1=stateMachine.AddTransition("Transition1",state1,state2);Transitiontransition1=stateMachine.AddTransition("Transition1","state1",state2);Transitiontransition1=stateMachine.AddTransition("Transition1",state1,"state2");Transitiontransition1=stateMachine.AddTransition("Transition1","state1","state2");//Return null if transition already existTransitiontransition1=stateMachine.TryAddTransition(outboolresult,"Transition1",state1,state2);Transitiontransition1=stateMachine.TryAddTransition(outboolresult,"Transition1","state1",state2);Transitiontransition1=stateMachine.TryAddTransition(outboolresult,"Transition1",state1,"state2");Transitiontransition1=stateMachine.TryAddTransition(outboolresult,"Transition1","state1","state2");You can add transition from this state
//Throw exeption if transition already exist//Add transition from state1 to state2Transitiontransition1=state1.AddTransitionFromThis("Transition1",state2);Transitiontransition1=state1.AddTransitionFromThis("Transition1","state2");//Return null if transition already existTransitiontransition1=state1.TryAddTransitionFromThis(outboolresult,"Transition1",state2);Transitiontransition1=state1.TryAddTransitionFromThis(outboolresult,"Transition1","state2");You can add transition to this state
//Throw exeption if transition already exist//Add transition from state1 to state2Transitiontransition1=state2.AddTransitionToThis("Transition1",state1);Transitiontransition1=state2.AddTransitionToThis("Transition1","state1");//Return null if transition already existTransitiontransition1=state2.TryAddTransitionToThis(outboolresult,"Transition1",state1);Transitiontransition1=state2.TryAddTransitionToThis(outboolresult,"Transition1","state1");//Throw exeption if transition not foundTransitiontransition1=stateMachine.GetTransition("Transition1");//Return null if transition not foundTransitiontransition1=stateMachine.TryGetTransition("Transition1",outboolresult);You can get all transitions from this state
//From state machine//Throw exeption if transitions not foundDictionary<string,Transition>transitions=stateMachine.GetTransitionsFromState(state1);Dictionary<string,Transition>transitions=stateMachine.GetTransitionsFromState("State1");//Return empty dictionary if transitions not foundDictionary<string,Transition>transitions=stateMachine.TryGetTransitionsFromState(state1,outboolresult);Dictionary<string,Transition>transitions=stateMachine.TryGetTransitionsFromState("State1",outboolresult);//From state//Throw exeption if transitions not foundDictionary<string,Transition>transitions=state1.GetTransitionsFromThis();//Return empty dictionary if transitions not foundDictionary<string,Transition>transitions=state1.TryGetTransitionsFromThis(outboolresult);You can get all transitions to this state
//From state machine//Throw exeption if transitions not foundDictionary<string,Transition>transitions=stateMachine.GetTransitionsToState(state2);Dictionary<string,Transition>transitions=stateMachine.GetTransitionsToState("State2");//Return empty dictionary if transitions not foundDictionary<string,Transition>transitions=stateMachine.GetTransitionsToState(state2,outboolresult);Dictionary<string,Transition>transitions=stateMachine.GetTransitionsToState("State2",outboolresult);//From state//Throw exeption if transitions not foundDictionary<string,Transition>transitions=state2.GetTransitionsToThis();//Return empty dictionary if transitions not foundDictionary<string,Transition>transitions=state2.TryGetTransitionsToThis(outboolresult);//You can check on existsboolTransition1IsExists=stateMachine.TransitionExists("Transition1")//Throw exeption if transition not foundstateMachine.DeleteTransition("Transition1");stateMachine.TryDeleteTransition("Transition1");//Throw exeption if transition not foundstateMachine.DeleteTransition(transition1);stateMachine.TryDeleteTransition(transition1);//Throw exeption if transition already delete from state machinetransition1.Delete();transition1.TryDelete(outboolresult);Triggered on transition from state. You can set many action for one transition
voidActionOnInvoke(Transitiontransition,Dictionary<string,object>parameters){}//you can set action with addTransitiontransition1=stateMachine.AddTransition("Transition1",state1,state2,ActionOnInvoke);//you can set action after addTransitiontransition1=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
//ExampleDictionary<string,object>parameters=newDictionary<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);