NullReferenceException: Object reference not set to an instance of an object

This is turning into a big headache for me, I’ve gone on searching multiple solutions but I couldn’t find any that is suitable for my situation.

I’m trying to do a simple load & save function, but I keep having this error. The object “pData.Data” is null, as a fact. I’m desperately trying to find a way to fix that, but I just don’t have the brain power to do so, I hate being carried in forums, but I really don’t know how to do this. I’d appreciate any help on this.

Error:
NullReferenceException: Object reference not set to an instance of an object
Score.loadData () (at Assets/data/spacevader/functions/critical/Score.cs:42)

Score script ← Error (line 11)

    public void Start()
    {
        loadData();
    }

    void loadData()
    {
        pData.LoadPlayerData();
    
        highscore = pData.data.highscore;
        highscoreTextEndg.text = highscore.ToString();
    }

PlayerData script:

public class PlayerData : MonoBehaviour
{
    public playerInfo data;

    [System.Serializable]
        public class playerInfo
        {
            public int highscore;

            public playerInfo()
            {
                highscore = 0;
            }
        }
        //Save Player Progress
        public void SavePlayerData()
        {
            SaveGame.Encode = true;
            SaveGame.Save<playerInfo>("playerData", data);
        }
        // Load Player Progress
        public void LoadPlayerData()
        {
            data = SaveGame.Load<playerInfo>("playerData");
        }
}
        }

If you need more information just tell me.

If “playerData” doesn’t exist when it is being loaded, the data field will remain null. Ensure that there is a file called playerData where the SaveGame.Load method is looking. If there isn’t you need to create a new playerInfo and then save it so it can be loaded.

The answer is always the same… ALWAYS. It is the single most common error ever.

Don’t waste your life spinning around and round on this error. Instead, learn how to fix it fast… it’s EASY!!

Some notes on how to fix a NullReferenceException error in Unity3D

  • also known as: Unassigned Reference Exception
  • also known as: Missing Reference Exception
  • also known as: Object reference not set to an instance of an object

The basic steps outlined above are:

  • Identify what is null
  • Identify why it is null
  • Fix that.

Expect to see this error a LOT. It’s easily the most common thing to do when working. Learn how to fix it rapidly. It’s easy. See the above link for more tips.

You need to figure out HOW that variable is supposed to get its initial value. There are many ways in Unity. In order of likelihood, it might be ONE of the following:

  • drag it in using the inspector
  • code inside this script initializes it
  • some OTHER external code initializes it
  • ? something else?

This is the kind of mindset and thinking process you need to bring to this problem:

Step by step, break it down, find the problem.

Here is a clean analogy of the actual underlying problem of a null reference exception: