// 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; } } }