Null object after Instantiation
Hello Everyone,
I am looking for someone that can explain why immediately after creating an instance of a script with passed in parameters it is immediately null. attached are images!][1] from debug that show the instance being created with the values passed and immediately after in the editor getting a null reference exception.
private void Awake()
{
//Assign defualt weapon
test = new Weapon(99, 5, .5f, 0, "M1911 Pistol");
}
Can you show me the script used for instantiating or you try to use "new Weapon" to create the new weapon?
Answer by HenryStrattonFW · Jan 27, 2017 at 06:30 PM
Assuming that "Weapon" is of type "MonoBehaviour" then this is because you cannot create a MonoBehaviour using the new keyword.
To create a new instance of a MonoBehaviour type you need to either create a new game object and then use AddComponent() on it. Or use GameObject.Instantiate to create a new instance of a prefab.
https://docs.unity3d.com/ScriptReference/Object.Instantiate.html
HenryStrattonFTW, Thank you for your answer this was indeed the problem. I was unfamiliar with how to use the constructors for what would be a component and not a C# object. using the AddComponent() method worked.
Thank you
If the answer is correct, please mark it correct with the button next to it.
No worries ace, I remember having the same adjustments problems when I first started using Unity having never used the type of component approach it uses before.
Good luck with your project!
Your answer
Follow this Question
Related Questions
Help with NullReferenceException 0 Answers
Not sure what this error is telling/asking me to do? 1 Answer
Null Reference Error 0 Answers
NullReferenceException... but it was just set...? 1 Answer
Cannot access 2D array element 1 Answer