예제 #1
0
 private void CheckTransitions(IFiniteStateMachineContext <State> context) => transitions.ForEach(transition =>
 {
     if (transition.decision.Decide(context))
     {
         context.TransitionToState(transition.trueState);
     }
 });
예제 #2
0
 public override bool Decide(IFiniteStateMachineContext <State> context) => true;
예제 #3
0
 public override bool Decide(IFiniteStateMachineContext <State> context) => Input.GetKeyDown(keyCode);
예제 #4
0
 public override bool Decide(IFiniteStateMachineContext <State> context) => throw new NotImplementedException();
예제 #5
0
 public abstract bool Decide(IFiniteStateMachineContext <State> context);
예제 #6
0
 public abstract void Act(IFiniteStateMachineContext <State> context);
예제 #7
0
 public void UpdateState(IFiniteStateMachineContext <State> context)
 {
     updateActions.ForEach(action => action.Act(context));
     CheckTransitions(context);
 }
예제 #8
0
 public void LeaveState(IFiniteStateMachineContext <State> context) =>
 leaveActions.ForEach(action => action.Act(context));
예제 #9
0
 public void StartState(IFiniteStateMachineContext <State> context) =>
 startActions.ForEach(action => action.Act(context));
예제 #10
0
 public override void Act(IFiniteStateMachineContext <State> context) => gameEvent.Broadcast();
예제 #11
0
 public override void Act(IFiniteStateMachineContext <State> context) => targetBoolVar.value = boolRef.Value;
예제 #12
0
 public override void Act(IFiniteStateMachineContext <State> context) => gameObjectRuntimeSet.list.Clear();
예제 #13
0
 public override void Act(IFiniteStateMachineContext <State> context)
 {
 }