Skip to content
GMIKE edited this page Mar 11, 2020 · 15 revisions

Сontent

Create

 //Throw exeption if state already exist
 State state1 = stateMachine.AddState("State1");

 //Return null if state already exist
 State state1 = stateMachine.TryAddState(out bool result, "State1");

Get

 //Throw exeption if state not found
 State state1 = stateMachine.GetState("State1");

 //Return null if state not found
 State state1 = stateMachine.TryGetState("State1", out bool result);

Delete

Delete with name

 //Throw exeption if state not found
 stateMachine.DeleteState("State1");

 stateMachine.TryDeleteState("State1");

Delete with object

 //Throw exeption if state not found
 stateMachine.DeleteState(state1);

 stateMachine.TryDeleteState(state1);

 //Throw exeption if state already delete from state machine
 state1.Delete();

 state1.TryDelete(out bool result);

Entry

Triggered after invoke transition. You can set many action for one state, but transition will be invoke that was called last

Action Syntax

 void ActionOnEtnry(State state, Dictionary<string, object> parameters)
 {
  //you need invoke transition in entry or exit action, differently work state machine will be end
  state.StateMachine.InvokeTransition("Transition1");
 }

Add action

 //you can set action with add. Throw exeption if ActionOnEtnry is null
 State state1 = stateMachine.AddState("State1", actionOnEntry: ActionOnEtnry);

 //you can set action after add. Throw exeption if  ActionOnEtnry is null
 State state1 = stateMachine.AddState("State1").OnEntry(ActionOnEtnry);

 //Throw exeption ActionOnEtnry is null
 state1.OnEntry(ActionOnEtnry); 
  
Clone this wiki locally