Beispiel #1
0
    void Start()
    {
        agent      = GetComponent <NavMeshAgent>();
        perception = GetComponent <EnemyPerception>();

        lastAITargetPosition = transform.position;
        aiState = AIState.patrol;

        StartCoroutine(basicAI());
    }
Beispiel #2
0
    public static void MakeDecision(EnemyBrain brain)
    {
        Vector2Int playerPosition;

        if (EnemyPerception.IsPlayerVisible(brain.position, out playerPosition))
        {
            Chase(brain, playerPosition);
        }
        else
        {
            Patrol(brain);
        }
    }
Beispiel #3
0
 public void DoTurn()
 {
     if (isAsleep)
     {
         Vector2Int player;
         if (EnemyPerception.IsPlayerVisible(position, out player))
         {
             int roll = Random.Range(0, 100);
             if (roll <= chance)
             {
                 isAsleep = false;
             }
         }
     }
     else
     {
         MeleeAI.MakeDecision(this);
     }
 }
Beispiel #4
0
 // Start is called before the first frame update
 void Start()
 {
     ep     = GetComponent <EnemyPerception>();
     rb     = GetComponent <Rigidbody2D>();
     hitBox = GetComponent <CircleCollider2D>();
 }