# Windows ランタイムサポート

> Call native Windows Runtime APIs and custom .winmd files from managed code using IL2CPP on Universal Windows Platform.

Unity には、ユニバーサル Windows プラットフォーム (UWP) 用の [IL2CPP](/engine/6000.0/manual/scripting/compilation-and-code-reload/backends/il2cpp.md) の Windows ランタイムサポートが含まれています。Windows ランタイムサポートを使用して、カスタムの .winmd ファイル同様、ネイティブシステムの Windows ランタイム API も直接マネージコード (スクリプトおよび DLL) から呼び出します。

自動的に IL2CPP で Windows ランタイムサポートを有効にするには、[Player](/engine/6000.0/manual/unity-editor/editor-features/comp-manager-group/class-player-settings.md) 設定 (**Edit** > **Project Settings** から **Player** カテゴリを選択) で、**Configuration** セクションに移動し、**Api Compatibility Level** を **.NET 4.6** か **.NET Standard 2.0** に設定します。


**Player 設定の Configuration セクション上記のオプションは、選択したビルドプラットフォームによって異なります。:**
![](/api/media?file=/engine/6000.0/media/images/IL2CPP-4.png)

Windows ランタイムサポートが有効である場合、Unity は自動的に Windows ランタイム API (ユニバーサル Windows プラットフォームの *Windows.winmd* など) を参照します。カスタムの .winmd ファイルを使うには、それらを (付属の DLL すべて含めて) Unity のプロジェクトフォルダーにインポートします。それから、 [Plugin Inspector](/engine/6000.0/manual/scripting/compilation-and-code-reload/plug-ins/plug-in-inspector.md) を使ってファイルをターゲットプラットフォーム向けに設定します。


**Plugin Inspector を使ってカスタムの .winmd ファイルを特定のプラットフォーム用に設定します:**
![](/api/media?file=/engine/6000.0/media/images/IL2CPP-5.png)

Unity プロジェクトの [スクリプト](/engine/6000.0/manual/scripting.md) では、`ENABLE_WINMD_SUPPORT` #define ディレクティブを使用して、プロジェクトで Windows ランタイムサポートが有効になっていることを確認できます。.winmd Windows API またはカスタム .winmd スクリプトを呼び出す前にこれを使用して、確実にそれらが実行されること、Windows に関連しないスクリプトはそれらを無視することを確認します。これは C＃スクリプトでのみサポートされていることに注意してください。以下の例を参照してください。

**例**

**`C#`**

```
void Start() {
  #if ENABLE_WINMD_SUPPORT
    Debug.Log("Windows Runtime Support enabled");
    // Put calls to your custom .winmd API here
  #endif
}
```

## 追加リソース

* [Windows ビルド設定のリファレンス](/engine/6000.0/manual/platform-specific/windows/standalone-binaries.md)
