private void FindTarget() { float targetRange = 100f; float attackRange = 15f; if (getEnemyTarget != null) { if (Vector3.Distance(getEnemyTarget().GetPosition(), GetPosition()) < attackRange) { StopMoving(); state = State.Attacking; Vector3 attackDir = (getEnemyTarget().GetPosition() - GetPosition()).normalized; characterBase.PlayPunchSlowAnimation(attackDir, (Vector3 hitPosition) => { if (getEnemyTarget() != null) { getEnemyTarget().Damage(this); } }, SetStateNormal); } else { if (Vector3.Distance(getEnemyTarget().GetPosition(), GetPosition()) < targetRange) { if (pathfindingTimer <= 0f) { pathfindingTimer = .3f; SetTargetPosition(getEnemyTarget().GetPosition()); } } } } }