Unity には、ユニバーサル Windows プラットフォームと Xbox One プラットフォーム用の IL2CPP の Windows ランタイムサポートが含まれています。Windows ランタイムサポートを使用して、カスタムの .winmd ファイル同様、内蔵システムの Windows ランタイム API も直接マネージドコードから呼び出します。
自動的に IL2CPP の Windows ランタイムサポートを有効にするには、PlayerSettings に移動し (Edit > Project Settings > Player)、 Configuration セクションで Api Compatibility Level を .NET 4.6 に設定します。
Windows ランタイムサポートが有効である場合、Unity は自動的に Windows ランタイム API (ユニバーサル Windows プラットフォームの Windows.winmd など) を参照します。カスタムの .winmd ファイルを使うには、それらを (付属の DLL すべて含めて) Unity のプロジェクトフォルダーにインポートします。 それから、 Plugin インスペクター を使ってファイルをターゲットプラットフォームのために設定します。
Unity プロジェクトの スクリプト では、ENABLE_WINMD_SUPPORT
#define ディレクティブを使用して、プロジェクトで Windows ランタイムサポートが有効になっていることを確認できます。.winmd Windows API またはカスタム .winmd スクリプトを呼び出す前にこれを使用して、確実にそれらが実行でき、Windows に関連しないスクリプトはそれらを無視するようにします。これは C#スクリプトでのみサポートされていることに注意してください。以下の例を参照してください。
例
C#
void Start() {
#if ENABLE_WINMD_SUPPORT
Debug.Log("Windows Runtime Support enabled");
// カスタムの .winmd API をここで呼び出します
#endif
}
Windows ランタイムサポートが IL2CPP で有効な場合に定義されるのに加え、 Compilation Overrides を Use Net Core に設定する場合も .NET で定義されます。