示例#1
0
    private bool Look(ENNEMY_BODY body)

    {
        RaycastHit hit;


        if (Physics.SphereCast(body.transform.position, 25f, body.transform.forward, out hit, body.lookRange))


        //// CHANGEMENT D'ETAT DU FSM PARENT /

        {
            if (hit.collider.CompareTag("demon"))

            {
                Debug.Log("ATTACK this ENNEMY  " + hit.transform.gameObject.tag);

                // body.target.position = hit.point;


                body.target = hit.transform;

                return(true);
            }
        }


        else
        {
            Debug.Log(" PATROLLING");
        }

        return(false);
    }
示例#2
0
 private void DoActions(ENNEMY_BODY body)
 {
     for (int i = 0; i < actions.Length; i++)
     {
         actions[i].Act(body);
     }
 }
示例#3
0
    public override void Act(ENNEMY_BODY body)
    {
        Debug.Log("RUN TEST HUNTING");



        body.firing.Launch(body.transform, body.transform.rotation);
    }
示例#4
0
    private void CheckTransitions(ENNEMY_BODY body)
    {
        for (int i = 0; i < transitions.Length; i++)
        {
            bool decisionSucceeded = transitions[i].decision.Decide(body);

            if (decisionSucceeded)
            {
                body.TransitionToState(transitions[i].trueState);
            }
            else
            {
                body.TransitionToState(transitions[i].falseState);
            }
        }
    }
示例#5
0
 public void UpdateState(ENNEMY_BODY body)
 {
     DoActions(body);
     CheckTransitions(body);
 }
示例#6
0
 // Use this for initialization
 void Awake()
 {
     body = GetComponent <ENNEMY_BODY>();
 }
示例#7
0
    public override void Act(ENNEMY_BODY body)
    {
        body.target = body.GOtarget.transform;

        Debug.Log("RUN TEST PATROL");
    }
示例#8
0
    public override bool Decide(ENNEMY_BODY body)
    {
        bool chaseTargetIsActive = body.target.gameObject.activeSelf;

        return(chaseTargetIsActive);
    }
示例#9
0
    public override bool Decide(ENNEMY_BODY body)
    {
        bool targetVisible = Look(body);

        return(targetVisible);
    }
示例#10
0
 public abstract void Act(ENNEMY_BODY body);
示例#11
0
 public abstract bool Decide(ENNEMY_BODY body);
示例#12
0
 public override void Act(ENNEMY_BODY body)
 {
     Debug.Log("RUN TEST PATROL");
 }