NonSerialized 属性により変数がシリアライズされないものとしてマーキングされます。
これにより変数を public のまま保持できるため Unity によりシリアライズされるかインスペクター上で非表示になります。
// p will not be shown in the inspector or serialized @System.NonSerialized var p = 5;
class Test { // p will not be shown in the inspector or serialized [System.NonSerialized] public int p = 5; }