Survival Shooter Tutorial-Please help with the Enemy Attack script

I have been following the tutorial videos but I’m stuck at the end of the 6th video. I have done everything as the tutorial says but I can’t get the Enemy Attack script to work. I keep getting a null reference exception when the script tries to access the playerHealth variable. I don’t know what the problem could be since the script definitely finds the player game object, and it does have a Player Health script attached to it, however, the GetComponent() method call fails, as you can see in the code attached below. Any ideas? Thanks for your help

using UnityEngine;
using System.Collections;

public class EnemyAttack : MonoBehaviour
{
public float timeBetweenAttacks = 0.5f;
public int attackDamage = 10;

Animator anim;
GameObject player;
PlayerHealth playerHealth;
//EnemyHealth enemyHealth;
bool playerInRange;
float timer;

void Awake ()
{
    player = GameObject.FindGameObjectWithTag ("Player");
    if (player!= null) { Debug.Log("found player"); }
    playerHealth = player.GetComponent <PlayerHealth> ();
    if (playerHealth == null) { Debug.Log("where's that BS"); }
  //enemyHealth = GetComponent<EnemyHealth>();
    anim = GetComponent <Animator> ();
   
}

void OnTriggerEnter (Collider other)
{
    if(other.gameObject == player)
    {
        playerInRange = true;
    }
}

void OnTriggerExit (Collider other)
{
    if(other.gameObject == player)
    {
        playerInRange = false;
    }
}

void Update ()
{
    timer += Time.deltaTime;

    if(timer >= timeBetweenAttacks && playerInRange /*&& enemyHealth.currentHealth > 0*/)
    {
        Attack ();
    }

    if(playerHealth.currentHealth <= 0)
    {
        anim.SetTrigger ("PlayerDead");
    }
}

void Attack ()
{
    timer = 0f;

    if(playerHealth.currentHealth > 0)
    {
        playerHealth.TakeDamage (attackDamage);
    }
}

}

here are 2 solution for u r problem
Solution 1
just remove this line from code :

if (playerHealth == null) {
Debug.Log(“where’s that BS”);
}

Solution 2

using UnityEngine;
using System.Collections;


public class EnemyAttack : MonoBehaviour
{
    public float timeBetweenAttacks = 0.5f;     // The time in seconds between each attack.
    public int attackDamage = 10;               // The amount of health taken away per attack.


    Animator anim;                              // Reference to the animator component.
    GameObject player;                          // Reference to the player GameObject.
    PlayerHealth playerHealth;                  // Reference to the player's health.
    EnemyHealth enemyHealth;                    // Reference to this enemy's health.
    bool playerInRange;                         // Whether player is within the trigger collider and can be attacked.
    float timer;                                // Timer for counting up to the next attack.


    void Awake ()
    {
        // Setting up the references.
        player = GameObject.FindGameObjectWithTag ("Player");
        playerHealth = player.GetComponent <PlayerHealth> ();
        enemyHealth = GetComponent<EnemyHealth>();
        anim = GetComponent <Animator> ();
    }


    void OnTriggerEnter (Collider other)
    {
        // If the entering collider is the player...
        if(other.gameObject == player)
        {
            // ... the player is in range.
            playerInRange = true;
        }
    }


    void OnTriggerExit (Collider other)
    {
        // If the exiting collider is the player...
        if(other.gameObject == player)
        {
            // ... the player is no longer in range.
            playerInRange = false;
        }
    }


    void Update ()
    {
        // Add the time since Update was last called to the timer.
        timer += Time.deltaTime;

        // If the timer exceeds the time between attacks, the player is in range and this enemy is alive...
        if(timer >= timeBetweenAttacks && playerInRange && enemyHealth.currentHealth > 0)
        {
            // ... attack.
            Attack ();
        }

        // If the player has zero or less health...
        if(playerHealth.currentHealth <= 0)
        {
            // ... tell the animator the player is dead.
            anim.SetTrigger ("PlayerDead");
        }
    }


    void Attack ()
    {
        // Reset the timer.
        timer = 0f;

        // If the player has health to lose...
        if(playerHealth.currentHealth > 0)
        {
            // ... damage the player.
            playerHealth.TakeDamage (attackDamage);
        }
    }
}