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.
// p will not be shown in the inspector or serialized @System.NonSerializable var p = 5;
class Test { // p will not be shown in the inspector or serialized [System.NonSerializable] public int p = 5; }