Ejemplo n.º 1
0
 private void DoActions(FSMController fSMController, Action[] actions)
 {
     if (actions != null)
     {
         for (int i = 0; i < actions.Length; i++)
         {
             actions[i].Act(fSMController);
         }
     }
 }
Ejemplo n.º 2
0
        private void CheckTranstions(FSMController fSMController)
        {
            for (int i = 0; i < transtions.Length; i++)
            {
                bool decision = transtions[i].decision.Decide(fSMController);

                if (decision)
                {
                    fSMController.TransitionToState(transtions[i].trueState);
                }
                else
                {
                    fSMController.TransitionToState(transtions[i].falseState);
                }
            }
        }
Ejemplo n.º 3
0
        public override bool Decide(FSMController fSMController)
        {
            hits = Physics2D.CircleCastAll(fSMController.transform.position, fSMController.detectionRadius, Vector2.zero);

            if (hits != null)
            {
                for (int i = 0; i < hits.Length; i++)
                {
                    if (hits[i].transform.CompareTag("Player"))
                    {
                        fSMController.ChosenTarget = hits[i].transform;
                        Debug.Log("Detected");
                        return(true);
                    }
                }
            }
            return(false);
        }
Ejemplo n.º 4
0
 public override void Act(FSMController fSMController)
 {
     Debug.Log("Chasing");
 }
Ejemplo n.º 5
0
 public void OnEnterState(FSMController fSMController)
 {
     DoActions(fSMController, onEnterActions);
 }
Ejemplo n.º 6
0
 public void OnExitState(FSMController fSMController)
 {
     DoActions(fSMController, onExitActions);
 }
Ejemplo n.º 7
0
 public void UpdateState(FSMController fSMController)
 {
     DoActions(fSMController, actions);
     CheckTranstions(fSMController);
 }
Ejemplo n.º 8
0
 public override void Act(FSMController fSM)
 {
     //fSMController.animator.SetBool("detected", true);
     fSM.Material.color     = Color.red;
     fSM.Current.stateColor = Color.red;
 }
Ejemplo n.º 9
0
 public override void Act(FSMController fSMController)
 {
     //fSMController.animator.SetBool("detected", false);
     fSMController.Material.color     = Color.green;
     fSMController.Current.stateColor = Color.green;
 }
Ejemplo n.º 10
0
 public override bool Decide(FSMController fSM)
 {
     return(true);
 }
Ejemplo n.º 11
0
 public abstract void Act(FSMController fSMController);
Ejemplo n.º 12
0
 public abstract bool Decide(FSMController fSM);