ユニバーサル Windows プラットフォーム: .NET スクリプトバックエンドで未対応の .NET型
#ユニバーサル Windows プラットフォーム: .NET スクリプティングバックエンドのデバッグ

ユニバーサル Windows プラットフォーム: .NET スクリプトバックエンドのプラグイン

ユニバーサル Windows プラットフォームのプラグイン設定

これらの設定を見るには Unity エディターの Project ウィンドウに移動し、 プラグインのファイルを選び、Inspector ウィンドウで Platform settings > Universal Windows Platform (Windows アイコン) の順に選択します。

ユニバーサル Windows プラットフォームプラグイン設定
ユニバーサル Windows プラットフォームプラグイン設定
プロパティー 機能
SDK ドロップダウンで Any SDK 、または特定の SDK を選び、プラグインが互換性を持つ SDK を設定します。
CPU ドロップダウンでプラグインを Any CPU (すべての APU に互換)、または、 32-bit64-bitARM (いずれかのプレイヤーに制限) を選択します。
Don’t process
(マネージアセンブリのみに適用)
このボックスにチェックを入れると、このアセンブリのパッチを無効にします。アセンブリに Unity によるシリアライズが可能なクラスが含まれる場合、パッチが必要です。このような場合、Unity はアセンブリに IL コードを追加します。アセンブリにこのようなクラスが含まれていないと分かっている場合、パッチを無効にして問題ありません。
注意 Unity はアセンブリにシリアライズのコードを加えます。そのため、プラグインに MonoBehaviour のクラスがあるときに Unity がそのパッチを行わないと、ランタイムにシリアライズのエラーが発生する場合があります。
Placeholder
(マネージアセンブリのみに適用)
With Universal Windows Platform you can have plug-ins compiled against .NET Core, but because the Unity Editor runs on Mono, it fails to recognize these assemblies. As a result, C# files can’t reference them. To work around this, you need to provide an assembly compiled against .NET 4.x with identical API, which acts as a placeholder for the real plugin (see next section, Placeholder plug-ins).

詳細は、プラグインインスペクター を参照してください。

プレースホルダーのプラグイン

Windows ランタイム APIs を使用する場合、Unity エディターでユニバーサル Windows プラットフォーム専用のプラグインを使用することはできません。ここでは、Unity エディターでこれをどのように処理するかを説明します。

ユニバーサル Windows プラットフォームだけのためにプラグインを使用し、Unity エディターでは使用しない場合は、プレースホルダーを作成する必要はありません。その場合は、プラグイン API を使用するコードを以下のようにラップします。

# if !UNITY_EDITOR
// プラグインコード
# endif

ユニバーサル Windows プラットフォームと Unity エディター両方のためにプラグインを使用したい場合は、プレースホルダーが必要です。以下の 2 つのプラグインを作ります。

  • ユニバーサル Windows プラットフォーム 用に、Windows ランタイム API を内包する .NET Core 用にコンパイルされたアセンブリプラグインを作成します。
  • For the Unity Editor, an assembly plug-in compiled against .NET 4.5, which has identical public API with dummy function implementations (this is the placeholder).

両プラグインとも同じ名とアセンブリバージョンを共有する必要があります。Unity エディターのプレースホルダープラグインは UnityEditor.dll を参照できません。それを行うと、エラーが発生します。

エディター内でプラットフォームをそれぞれに割り当てる方法は以下の手順の通りです。

  1. Unity エディターの Project ウィンドウで、エディターと互換性のあるプレースホルダープラグインを選択します。Inspector ウィンドウで、 Select platforms for plugin に移動し、ただ 1 つの互換性のあるプラットフォームとして Editor を選択します。

  2. Unity エディターの Project ウィンドウで、ユニバーサル Windows プラットフォームと互換性のあるプレースホルダープラグインを選択します。Inspector ウィンドウで、 Select platforms for plugin に移動し、ただ 1 つの互換性のあるプラットフォームとして Universal Windows Platform を選択します。

  3. ユニバーサル Windows プラットフォームと互換性のあるプラグインの Inspector ウィンドウで、Placeholder フィールドをエディターと互換性のあるプレースホルダープラグインに設定します。

つまり、ユニバーサル Windows プラットフォーム用にビルドする場合は、 Unity では、スクリプトをコンパイルするときにエディターと互換性のあるプレースホルダープラグインを使用します。ただし、ユニバーサル Windows プラットフォームと互換性のあるプラグインを最終的なフォルダーにコピーします。これにより、Unity エディターは正常にスクリプトをコンパイルし、しかも、ビルドされたゲームは、ユニバーサル Windows プラットフォーム専用プラグインの API を使用できます。


  • • 2018–08–03 限られた 編集レビュー で修正されたページ

  • .NET 3.5 スクリプティングランタイムは 2018.3 で非推奨

ユニバーサル Windows プラットフォーム: .NET スクリプトバックエンドで未対応の .NET型
#ユニバーサル Windows プラットフォーム: .NET スクリプティングバックエンドのデバッグ