public ScriptableState GetState(ScriptableState value) { if (!states.Contains(value)) { states.Add(value); } return(states.Find(state => state.Equals(value))); }
protected void Transition(ScriptableState value) { if (currentState == value || inTransition) { return; } inTransition = true; if (currentState != null) { currentState.Exit(); } currentState = value; if (currentState != null) { currentState.Enter(); } inTransition = false; }
public void ChangeState(ScriptableState value) { CurrentState = GetState(value); }