Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Variables are not visible in script Inspector window

I started Unity a couple of days ago and I'm confused.
This is my current workspace:

This is what is should look like:

I should be able to fill in the variables but I can't.

like image 690
Zak The Hat Avatar asked Feb 20 '26 13:02

Zak The Hat


1 Answers

  1. To show properties/variables in the inspector, they must be public, if they are not they won't appear.

  2. You can also view private fields by attributing them as [SerializeField].

  3. To view custom classes in the inspector, you should mark them as [Serializable].

  4. To hide public variables from inspector, use [HideInInspector] or [System.NonSerialized] attribute.

Here is a sample:

public class SomePerson : MonoBehaviour 
{
    //This field gets serialized because it is public.
    public string name = "John";

    //This field does not get serialized because it is private.
    private int age = 40;

    //This field gets serialized even though it is private
    //because it has the SerializeField attribute applied.
    [SerializeField]
    private bool hasHealthPotion = true;

    // This will be displayed in the inspector because the class has Serialized attribute.
    public SomeCustomClass somCustomClassInstance;

    // This will not be shown in inspector even if it is public.
    [HideInInspector]
    public bool hiddenBool;    

    // Same with this one.
    [System.NonSerialized]
    public int nonSerializedVariable = 5;
}

[System.Serializable]
public class SomeCustomClass
{
    public string someProperty;
}
like image 83
Umair M Avatar answered Feb 23 '26 03:02

Umair M



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!