Unityでアセンブリ単位でNullable Reference Types(null 参照許容型)を有効にする方法です。
Unity6000.3.6f1
Nullable Reference Typesとは?
現状のUnity環境のC#では、デフォルトでは参照型にnullを入れることができます。
public sealed class Example { public string Foo { get; set; } = null; }
Nullable Reference Types(null 許容参照型)を有効にすると、明示的にnullを許容する型で変数を宣言せずにnullを代入すると、コンパイル時に警告になったりエラーになったりします。
つまり、上記のコードでは警告またはエラーが出ます。これを消すには、以下のように string を string? に書き換える、つまり Nullable Reference Types に変更する必要があります。
public sealed class Example { public string? Foo { get; set; } = null; }
Nullable Reference Typesを有効にする
Nullable Reference Types を有効にするには、以下のような内容のファイルを作成します。
-nullable:enable
そしてこれを、有効にしたいAssembly Definitionファイルと同じ階層に、csc.rspというファイル名で保存します。
警告をエラーに変える
上記の手順で、非null許容参照型の変数に対してnullが代入されるコードを書くと、警告が出るようになります。
もしこの警告をコンパイルエラーに変えたい場合は、以下のように csc.rsp を書き直します。
-nullable:enable -warnaserror:nullable