My Raycast wont take away damage,Enemy Health Raycast

PlayerShooting

public class PlayerShooting : MonoBehaviour
{
public float gunDamage = 50f;
public float gunRange = 100f;

private int currentHealth; //Enemy Current Health within the game

public Camera camera;
void Start()
{
    GetComponent<PlayerShooting>();
}

void Update()
{
    if (Input.GetKeyDown("e"))
    {
        Shoot();
    }
}

void Shoot()
{
    RaycastHit hit;
    if (Physics.Raycast(camera.transform.position, camera.transform.forward, out hit, gunRange))
    {
        Debug.Log("Bullet Hit");
    }
}

private void TakeDamage(int amount, Vector3 hitPoint)
{
    RaycastHit hit;
    if (Physics.Raycast(camera.transform.position, camera.transform.forward, out hit, gunRange))
    {
        Debug.Log("Damage Has Been Taken");
        currentHealth -= amount;
    }
}

}

EnemyHealth

public class EnemyHealth : MonoBehaviour
{
public int startingHealth = 150; //Enemy Starting Health
public int currentHealth; //Enemy Current Health within the game

CapsuleCollider capsuleCollider; //Get the Capsule Collider
bool isDead;
PlayerShooting playerShooting; //Referencing the PlayerShooting Component

void Awake()
{
    currentHealth = startingHealth;
}

void Start()
{
    playerShooting = GetComponent<PlayerShooting>();
}

public void TakeDamage(int amount, Vector3 hitPoint)
{
    Debug.Log("Taking Damage");
    if (isDead)
        return;

    RaycastHit hit;
    if (Physics.Raycast(GetComponent<Camera>().transform.position, GetComponent<Camera>().transform.forward, out hit, gunRange))
    {
        Debug.Log("Damage Has Been Taken");
        currentHealth -= amount;
    }

    currentHealth -= amount;

    if (currentHealth <= 0)
    {
        Debug.Log("isDead");
        Death();
    }
}

void Death()
{
    isDead = true;

    capsuleCollider.isTrigger = true;
}

},When I shoot my gun with its raycast, the enemies health doesn’t decrease.
Here is the scripts:

EnemyHealth

public class EnemyHealth : MonoBehaviour
{
public int startingHealth = 150; //Enemy Starting Health
public int currentHealth; //Enemy Current Health within the game

CapsuleCollider capsuleCollider; //Get the Capsule Collider
bool isDead;
PlayerShooting playerShooting; //Referencing the PlayerShooting Component

void Awake()
{
    currentHealth = startingHealth;
}

void Start()
{
    playerShooting = GetComponent<PlayerShooting>();
}

public void TakeDamage(int amount, Vector3 hitPoint)
{
    Debug.Log("Taking Damage");
    if (isDead)
        return;

    RaycastHit hit;
    if (Physics.Raycast(GetComponent<Camera>().transform.position, GetComponent<Camera>().transform.forward, out hit, gunRange))
    {
        Debug.Log("Damage Has Been Taken");
        currentHealth -= amount;
    }

    currentHealth -= amount;

    if (currentHealth <= 0)
    {
        Debug.Log("isDead");
        Death();
    }
}

void Death()
{
    isDead = true;

    capsuleCollider.isTrigger = true;
}

}

PlayerShooting

public class PlayerShooting : MonoBehaviour
{
public float gunDamage = 50f;
public float gunRange = 100f;

private int currentHealth; //Enemy Current Health within the game

public Camera camera;
void Start()
{
    GetComponent<PlayerShooting>();
}

void Update()
{
    if (Input.GetKeyDown("e"))
    {
        Shoot();
    }
}

void Shoot()
{
    RaycastHit hit;
    if (Physics.Raycast(camera.transform.position, camera.transform.forward, out hit, gunRange))
    {
        Debug.Log("Bullet Hit");
    }
}

private void TakeDamage(int amount, Vector3 hitPoint)
{
    RaycastHit hit;
    if (Physics.Raycast(camera.transform.position, camera.transform.forward, out hit, gunRange))
    {
        Debug.Log("Damage Has Been Taken");
        currentHealth -= amount;
    }
}

}

I get the feeling you are over-complicating things a bit. For instance, you are recreating the ray send from the player to use the hit in the enemy script. So to show how things can be simpler, i 'll give a little example. Lets say we have 2 scripts called Player and Enemy. We just let the player shoot and let the enemy take the hit:

public class Player : MonoBehaviour 
{ 
  public float gunDamage = 50f; 
  public float gunRange = 100f;

  private Camera camera;

  void Start()
  {
    camera = GetComponent<Camera>();
  }

  void Update()
  {
     if (Input.GetKeyDown("e"))
     {
       Shoot();
      }
  }

  void Shoot()
  {
    RaycastHit hit;
    if (Physics.Raycast(camera.transform.position, camera.transform.forward, out hit, gunRange))
    {
      Enemy enemy = hit.collider.gameObject.GetComponent<Enemy>();  
      if(enemy != null)
      {
        enemy.TakeDamage(gunDamage);
      }
    }
  }
}

///////////////////////////

public class Enemy()
{
  int currentHealth = 100;

  public void TakeDamage(int damage)
  {
    currentHealth -= damage;
  }
}

Its just a simple example, but it simplifies the raycasting and the scripts itself.