NonSerialized

Description

The NonSerialized attribute marks a variable to not be serialized.

Apply to public fields to prevent Unity from serializing the field and displaying it in the Inspector.

Apply to a private field to stop the field being serialized during a hot reload operation, such as after an assembly is recompiled, or during a domain reload operation before entering Play mode.

For more information on serialization, see Script Serialization.

Additional resources: HideInInspector, SerializeField.

class Test
{
    // p will not be shown in the Inspector or serialized
    [System.NonSerialized]
    public int p = 5;
    // neverSerializeMe will never be serialized, even during an hot reload.
    [System.NonSerialized]
    private int neverSerializeMe;
    // The backing field for NeverSerializedProperty property will never be serialized,
    // even during a hot reload
    [field: System.NonSerialized]
    public int NeverSerializedProperty { get; set; }
}

Did you find this page useful? Please give it a rating: