Exemplo n.º 1
0
    // OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
    override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        flyer.LookAtPlayer();

        Vector2 target = new Vector2(player.position.x, player.position.y);

        if (Vector2.Distance(player.position, rb.position) <= distanceX && rb.position.y - player.position.y <= distanceY)
        {
            Vector2 newPos = Vector2.MoveTowards(rb.position, target, speed * Time.fixedDeltaTime);
            rb.MovePosition(newPos);
        }

        if (Vector2.Distance(player.position, rb.position) <= EnemyAttackRange)
        {
            attackTimer += 1;
            if (attackTimer == nextAttackTime)
            {
                animator.SetTrigger("EnemyAttack");
                attackTimer = 0;
            }
        }
    }