Unity プロジェクトが、デフォルトでコンパイルされない .NET クラスライブラリ API の一部にアクセスする必要がある場合、プロジェクトは Unity の C# コンパイラーに通知できます。この動作は、プロジェクトが使用する .NET プロファイルによって異なります。
プロジェクトで .NET Standard 2.0 の Api Compatibility Level (API の互換性レベル) を使用する場合は、.NET クラスライブラリ API の一部を使用するために追加の手順を行う必要はありません。API の一部が見つからない場合は、.NET Standard 2.0 に含まれていない場合があります。代わりに、プロジェクトで .NET 4.x の Api Compatibility Level を使用しなければならない場合があります。
デフォルトでは、.NET 4.x の Api Compatibility Level を使用する場合、Unity は以下のアセンブリを参照します。
他のクラスライブラリアセンブリを参照するには、csc.rsp ファイルを使用してください。このファイルを Unity プロジェクトの Assets ディレクトリに追加し、それを使って追加のコマンドライン引数を C# コンパイラーに渡すことができます。例えば、System.Net.Http.dll
アセンブリで定義された HttpClient
クラスをプロジェクトで使用すると、C# コンパイラーは以下の初期エラーメッセージを出力する場合があります。
The type `HttpClient` is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. (タイプ `HttpClient` は参照されていないアセンブリで定義されています。アセンブリに参照を加える必要があります。'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' )
このエラーを解決するには、以下の csc.rsp ファイルをプロジェクトに加えます。
-r:System.Net.Http.dll
前述の例のように、クラスライブラリのアセンブリを参照する必要があります。アセンブリファイルは、プロジェクトの Assets
フォルダー、またはそのサブフォルダーに配置する必要があります。
クラスライブラリアセンブリを参照するために csc.rsp ファイルを使用する場合は注意が必要です。API Compatibility Level を .NET 4.x から .NET Standard 2.0 に変更し、上記の例のような csc.rsp がプロジェクトに存在する場合、C# コンパイルは失敗します。 System.Net.Http.dll アセンブリが .NET Standard 2.0 プロファイルに存在しないため、C# コンパイラーは .NET Standard 2.0 プロファイルを見つけることができません。
csc.rsp ファイルには、現在の .NET プロファイル専用の部分を作ることができます。プロファイルに変更を加える場合は、csc.rsp ファイルを変更する必要があります。