- Home /
Inspector remembers [HideInInspector] variables
The inspector remembers values of variables that are set to be hidden in the Inspector which I think it should not do. My test script looks like this:
class MyClass : MonoBehaviour
{
[HideInInspector]
public string myText = "111";
void Start()
{
Debug.Log("myText: " + myText);
}
}
Now I attach the script to a gameObject, run the project and get "myText: 111" in the console as expected.
Then I change the "111" in my script to something else i.e. "222", run the project again and still get "myText: 111" in the console.
Now I reset my Script component in the inspector, run the project once more and get the expected "myText: 222" in the console.
I would say this is a bug since [HideInInspector] should make unity to ignore the variable and not remember its current value. Or is this now intended behaviour?
Answer by Adam-Mechtley · Apr 27, 2017 at 09:25 AM
HideInInspector makes it not visible, but it is still serialized as normal. You probably want to add System.NonSerialized
Okay, thanks to you and alankemp.
I was using [HideInInspector] all the time and never noticed this until now. I guess I was just lucky until now. I will have to change a bunch of scripts now just to be on the save side.
Answer by alankemp · Apr 27, 2017 at 09:26 AM
[HideInInspector] does exactly what its name suggests, it prevents it being visible in the inspector.
It is still a public variable so Unity still serializes it for you.
NonSerialized does both, it hides it in the inspector and prevents it being serialized.
Your answer
![](https://koobas.hobune.stream/wayback/20220612120745im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Making a minor change to Default inspector? 1 Answer
Why do Public Variables overwrite a Scripts Default Value 2 Answers
Is it possible to show Static Variables in the Inspector? 10 Answers
Javascript and C#, different behaviour in inspector ? 1 Answer
How to expose variables in c# according to selected booleans 1 Answer