public void DoActions(_HunterStateController controller) { for (int i = 0; i < actions.Length; i++) { actions [i].Act(controller); } }
public void CatchTo(_HunterStateController controller) { if (controller.character.CurrentState == CharacterState.Normal) { controller.navMeshAgent.destination = controller.underInvokeList [0].position; controller.navMeshAgent.isStopped = false; } }
public bool Alarm(_HunterStateController controller) { if (controller.underInvokeList.Count > 0) { return(true); } else { return(false); } }
private void CheckTransitions(_HunterStateController controller) { for (int i = 0; i < transitions.Length; i++) { bool decisionSucceed = transitions [i].decision.Decide(controller); if (decisionSucceed) { controller.TransitionToState(transitions [i].trueState); } else { controller.TransitionToState(transitions [i].falseState); } } }
public abstract bool Decide(_HunterStateController controller);
public void UpdateStates(_HunterStateController controller) { DoActions(controller); CheckTransitions(controller); }
public abstract void Act(_HunterStateController controller);
public override void Act(_HunterStateController controller) { CatchTo(controller); }
public override void Act(_HunterStateController controller) { Wonder(controller); }
public void Wonder(_HunterStateController controller) { controller.navMeshAgent.destination = controller.wonderPoint; }
public override bool Decide(_HunterStateController controller) { bool alarms = Alarm(controller); return(alarms); }