code error in Stealth project 1

I followed the turorial, but I am getting the following errors:
NullReferenceException: Object reference not set to an instance of an object
PlayerMovement.Update () (at Assets/Scripts/player/PlayerMovement.cs:43)

NullReferenceException: Object reference not set to an instance of an object
PlayerMovement.MovementManagement (Single horizontal, Single vertical, Boolean sneaking) (at Assets/Scripts/player/PlayerMovement.cs:52)
PlayerMovement.FixedUpdate () (at Assets/Scripts/player/PlayerMovement.cs:33)

This is the script as I copied from the tutorial:

using UnityEngine;
using System.Collections;

public class PlayerMovement : MonoBehaviour
public AudioClip shoutingClip; // Audio clip of the player shouting.
public float turnSmoothing = 15f; // A smoothing value for turning the player.
public float speedDampTime = 0.1f; // The damping for the speed parameter

private Animator anim;              // Reference to the animator component.
private HashIDs hash;               // Reference to the HashIDs.

void Awake ()
    // Setting up the references.
    anim = GetComponent<Animator>();
    hash = GameObject.FindGameObjectWithTag(Tags.gameController).GetComponent<HashIDs>();
    // Set the weight of the shouting layer to 1.
    anim.SetLayerWeight(1, 1f);

void FixedUpdate ()
    // Cache the inputs.
    float h = Input.GetAxis("Horizontal");
    float v = Input.GetAxis("Vertical");
    bool sneak = Input.GetButton("Sneak");
    MovementManagement(h, v, sneak);

void Update ()
    // Cache the attention attracting input.
    bool shout = Input.GetButtonDown("Attract");
    // Set the animator shouting parameter.
    anim.SetBool(hash.shoutingBool, shout);

void MovementManagement (float horizontal, float vertical, bool sneaking)
    // Set the sneaking parameter to the sneak input.
    anim.SetBool(hash.sneakingBool, sneaking);
    // If there is some axis input...
    if(horizontal != 0f || vertical != 0f)
        // ... set the players rotation and set the speed parameter to 5.5f.
        Rotating(horizontal, vertical);
        anim.SetFloat(hash.speedFloat, 5.5f, speedDampTime, Time.deltaTime);
        // Otherwise set the speed parameter to 0.
        anim.SetFloat(hash.speedFloat, 0);

void Rotating (float horizontal, float vertical)
    // Create a new vector of the horizontal and vertical inputs.
    Vector3 targetDirection = new Vector3(horizontal, 0f, vertical);
    // Create a rotation based on this new vector assuming that up is the global y axis.
    Quaternion targetRotation = Quaternion.LookRotation(targetDirection, Vector3.up);
    // Create a rotation that is an increment closer to the target rotation from the player's rotation.
    Quaternion newRotation = Quaternion.Lerp(rigidbody.rotation, targetRotation, turnSmoothing * Time.deltaTime);
    // Change the players rotation to this new rotation.

void AudioManagement (bool shout)
    // If the player is currently in the run state...
    if(anim.GetCurrentAnimatorStateInfo(0).nameHash == hash.locomotionState)
        // ... and if the footsteps are not playing...
            // ... play them.
        // Otherwise stop the footsteps.
    // If the shout input has been pressed...
        // ... play the shouting clip where we are.
        AudioSource.PlayClipAtPoint(shoutingClip, transform.position);


Everything is declared, but still getting the errors


I had same problem at first too. But then I deleted my “HashIDs” from the project and went to the done “HashIds”, copied the code and as I code through Visual Studio I manually added a class in the assets folder by Visual Studio, deleted the code and pasted the copied code and,
using UnityEngine;
using System.Collections;

public class DoneHashIDs : MonoBehaviour
I replaced the “DoneHashIDs” with “HashIDs” and then went back to Unity and dragged the HashIDs from the assets to the GameController.

Your Welcome