説明

The NonSerializable attribute marks a variable to not be serialized.

This way you can keep a variable public and Unity does not attempt to serialize it or show it in the Inspector.

class Test
{
    // p will not be shown in the inspector or serialized
    [System.NonSerializable]
    public int p = 5;
}