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は以下のアセンブリを参照します。
You should reference any other class library assemblies using an mcs.rsp file. You can add this file to the Assets directory of a Unity Project, and use it to pass additional command line arguments to the C# compiler. For example, if a Project uses the HttpClient
class, which is defined in the System.Net.Http.dll assembly, the C# compiler might produce this initial error message:
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' )
You can resolve this error by adding the following mcs.rsp file to the Project:
-r:System.Net.Http.dll
上記の例で説明したように、クラスライブラリアセンブリを参照する必要があります。それらは、Project ディレクトリにコピーしないでください。
Exercise caution when using an mcs.rsp file to reference class library assemblies. If you change the Api Compatibility Level from .NET 4.x to .NET Standard 2.0, and an mcs.rsp like the one in the example above exists in the Project, then C# compilation fails. The System.Net.Http.dll assembly does not exist in the .NET Standard 2.0 profile, so the C# compiler is unable to locate it.
The mcs.rsp file can have parts that are specific to the current .NET profile. If you make changes to the profile, you need to modify the mcs.rsp file.