NullReferenceException HELP!!!

I have tried multiple fixes for one of my scripts and none have worked for me. Every time I try and run my game it gives me the error:
“NullReferenceException: Object reference not set to an instance of an object” I cant fix it! Here is my script:

using UnityEngine;
using System.Collections;
using System;

public class CharacterGenerator : MonoBehaviour {
private PlayerCharacter _toon;

// Use this for initialization
void Start () {
_toon = new PlayerCharacter();
_toon.Awake();
}

// Update is called once per frame
void Update () {

}

void OnGUI() {
DisplayName ();
DisplayAttributes();
DisplayVitals();
DisplaySkills();
}

private void DisplayName() {
GUI.Label (new Rect(10, 10, 50, 25), “Name:”);
_toon.Name = GUI.TextArea(new Rect(65, 10, 100,25), _toon.Name);
}

private void DisplayAttributes() {
for(int cnt = 0; cnt < Enum.GetValues(typeof(AttributeName)).Length; cnt++) {
GUI.Label(new Rect(10, 40 + (cnt * 25), 100, 25), ((AttributeName)cnt).ToString());
GUI.Label(new Rect(115, 40 + (cnt * 25), 30, 25), _toon.GetPrimaryAttribute(cnt).AdjustedBaseValue.ToString());
}
}

private void DisplayVitals() {
for(int cnt = 0; cnt < Enum.GetValues(typeof(VitalName)).Length; cnt++) {
GUI.Label(new Rect(10, 40 + ((cnt + 7) * 25), 100, 25), ((VitalName)cnt).ToString());
GUI.Label(new Rect(115, 40 + ((cnt + 7) * 25), 30, 25), _toon.GetVital(cnt).AdjustedBaseValue.ToString());
}
}

private void DisplaySkills() {
for(int cnt = 0; cnt < Enum.GetValues(typeof(SkillName)).Length; cnt++) {
GUI.Label(new Rect(250, 40 + (cnt * 25), 100, 25), ((SkillName)cnt).ToString());
GUI.Label(new Rect(355, 40 + (cnt * 25), 30, 25), _toon.GetSkill(cnt).AdjustedBaseValue.ToString());
}
}
}

  1. use code paste
  2. tell us what line the error is in. guessing is boring.

I bet the attributes of the PlayerCharacter _toon are all null since it doesn’t seem like you are either using a constructor or assigning them anywhere. If not, see iossif’s response.

private void DisplayVitals() is generating the error. Hope that helps! :slight_smile:

GUI.Label(new Rect(115, 40 + (cnt * 25), 30, 25), _toon.GetPrimaryAttribute(cnt).AdjustedBaseValue.T oString());
should be
GUI.Label(new Rect(115, 40 + (cnt * 25), 30, 25), _toon.GetPrimaryAttribute(cnt).AdjustedBaseValue.ToString());
without the space

I fail to see anything else given such a limited scope (it contains references to things we can’t see), and you are still being amiguous. You gave us a function, you didn’t give us a line.

sorry about that. I changed that and the line that gives the error is:
GUI.Label(new Rect(115, 40 + ((cnt + 7) * 25), 30, 25), _toon.GetVital(cnt).AdjustedBaseValue.ToString());

Hope that helps!