Melee combat error

hey i making an RPG and i´m having trouble with my melee combat script. can anyone help me? this is my playerAttack script:

using UnityEngine;
using System.Collections;

 public class PlayerAttack : MonoBehaviour {
  public GameObject target;
  public float attackTimer;
  public float coolDown;

 // Use this for initialization
    void Start () {
      attackTimer = 0;
      coolDown = 2.0f;

   }

 // Update is called once per frame
   void Update () {
    if(attackTimer > 0)
    attackTimer -= Time.deltaTime;

if(attackTimer < 0)
   attackTimer = 0;

   if(Input.GetKeyUp(KeyCode.F)){
   if(attackTimer == 0){
     Attack();
     attackTimer = coolDown;
 }
  }
 }

    private void Attack(){
       float distance = Vector3.Distance(target.transform.position, transform.position);

      Vector3 dir = (target.transform.position - transform.position).normalized;

     float direction = Vector3.Dot(dir, transform.forward);

     if (distance < 2.5f){
     if (direction > 0){
     EnemyHealth eh = (EnemyHealth)target.GetComponent ("EnemyHealth");
     eh.AddjustCurrentHealth(-10);
     }
   }
 }
}

First thing you could use:

   attackTimer -= Time.deltaTime;
   if(Input.GetKeyUp(KeyCode.F)&& attackTimer<=0){
     Attack();
     attackTimer = coolDown;
  }

I think also you want to use

if(Vector3.Dot(target.transform.forward, transform.forward)<0){
  EnemyHealth eh = target.GetComponent<EnemyHealth>();
   eh.AddjustCurrentHealth(-10);
}

Your GetComponent was a mix of UnityScript for C#.

This is giving the dot product of the forward of the player and the forward of the target. If the result is less than 0 then the two vectors are opposite direction.

P.S I have no Unity to try it…