private void DoActions(MusicStateController controller) { // Loop through all actions associated with this state. for (int i = 0; i < actions.Length; i++) { // Do actions. actions[i].Act(controller); } }
private void CheckTransitions(MusicStateController controller) { for (int i = 0; i < transitions.Length; i++) { bool decisionSucceeded = transitions[i].decision.Decide(controller); if (decisionSucceeded) { controller.TransitionToState(transitions[i].trueState); } else { controller.TransitionToState(transitions[i].falseState); } } }
private bool KeyPressed(MusicStateController controller) { return(Input.GetKeyDown(key)); }
public override bool Decide(MusicStateController controller) { return(KeyPressed(controller)); }
public abstract void Act(MusicStateController controller);
public override void Act(MusicStateController controller) { ChangeText(controller); }
private void ChangeText(MusicStateController controller) { controller.trackDisplay.text = trackName; }
public void UpdateState(MusicStateController controller) { // Evaluate our actions and decisions/transitions DoActions(controller); CheckTransitions(controller); }
public abstract bool Decide(MusicStateController controller);
public override void Act(MusicStateController controller) { Play(controller); }
private void Play(MusicStateController controller) { myGroove.TransitionTo(0.01f); }