I started Unity a couple of days ago and I\'m confused.
This is my current workspace:
This is
To show properties/variables in the inspector, they must be public
, if they are not they won't appear.
You can also view private fields
by attributing them as [SerializeField]
.
To view custom classes in the inspector, you should mark them as [Serializable]
.
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;
}