The NonSerialized attribute marks a variable to not be serialized.
This way you can keep a variable public and Unity will not attempt to serialize it or show it in the inspector
// p will not be shown in the inspector or serialized
@System.NonSerialized
var p = 5;
// C# Example
class Test {
// p will not be shown in the inspector or serialized
[System.NonSerialized]
public int p = 5;
}