Object reference not set to an instance of an object (909665)

I’m trying to create a Grabbing Script but it kept saying the same error:

“NullReferenceException: Object reference not set to an instance of an object
PlayerPickUpDrop.Update () (at Assets/Custom/Script/PlayerPickUpDrop.cs:21)”

Here the Script:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerPickUpDrop : MonoBehaviour{


    [SerializeField] private Transform playerCameraTransform;
    [SerializeField] private Transform objectGrabPointTransform;
    [SerializeField] private LayerMask pickUpLayerMask;

    private ObjectGrabbable objectGrabbable;


    private void Update() {
        if (Input.GetKeyDown(KeyCode.E)) {
            if (objectGrabbable == null) {
                // Not carrying an object, try to grab
                float pickUpDistance = 2f;
                if (Physics.Raycast(playerCameraTransform.position, playerCameraTransform.forward, out RaycastHit raycastHit, pickUpDistance, pickUpLayerMask));
                    if (raycastHit.transform.TryGetComponent(out objectGrabbable)) {
                             objectGrabbable.Grab(objectGrabPointTransform);
                    }
                   
            } else {
                //Currently carrying something, drop
                objectGrabbable.Drop();
                objectGrabbable = null;         
            }
        }
    }
}

The answer for this error is ALWAYS the same. ALWAYS!

How to fix a NullReferenceException error

https://forum.unity.com/threads/how-to-fix-a-nullreferenceexception-error.1230297/

Three steps to success:

  • Identify what is null ← any other action taken before this step is WASTED TIME
  • Identify why it is null
  • Fix that