In the two files attached ExecuteAttackScript carries out my attack and in the PlayerAttack Script it checks if the player did his attack and moves on to the next characters turn. My issue is in the execute attack script i have a bool, abilityDone, to be true when the attack is done. I am having diffuculties getting the if statement in the Player Attack script to check when it is true and keep getting a NullReferenceException error for line 30 of the PlayerAttack when running.
7553074–933877–ExecuteAttackScript.cs (1.93 KB)
7553074–933880–PlayerAttack.cs (965 Bytes)
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
http://plbm.com/?p=221
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:
https://discussions.unity.com/t/814091/4
Step by step, break it down, find the problem.
Here is a clean analogy of the actual underlying problem of a null reference exception:
https://discussions.unity.com/t/840647/7
Referencing variables, fields, methods (anything non-static) in other script instances:
https://discussions.unity.com/t/833085/2
https://discussions.unity.com/t/839310
1 Like
I am aware of where the null reference is occurring and i believe i do understand what a null reference is, what i dont understand is that i do give the bool initial values to initialise them in the executeattackscript, but they still return the null reference so unless there is something im unsure about or making an error in the way i call the bool to check it i cant seem to understand a reason it would read as null for the if statements. If this seems like a trivial problem it probably is but i have only very recently started using unity and c#.
Bools are not reference types so they can’t be null or give you a null reference exception. It’s almost certainly your reference to executeattackscript pt turnclass that’s null.
1 Like
thanks i didnt realise id need to make something for the executeattackscript in the inspector to call it that worked.