Version: 2017.4
ユニバーサル 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
(マネージアセンブリのみに適用)
ユニバーサル Windows プラットフォームでは、.NET Core に対してプラグインをコンパイルできますが、Unity エディターは Mono 上で実行するため、このようなアセンブリを認識できません。その結果、C# または JS ファイルはそれらを参照できなくなります。これを解決するには、同じ API をもつ .NET 3.5 用にコンパイルしたアセンブリが必要です。これは、実際のプラグインのプレースホルダーのように動作します (次のセクション参照)。

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

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

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

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

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

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

  • ユニバーサル Windows プラットフォーム 用に、Windows ランタイム API を内包する .NET Core 用にコンパイルされたアセンブリプラグインを作成します。
  • Unity エディター 用に、.NET 3.5 用にコンパイルされたアセンブリプラグインを作成します。これは、ダミーの関数を実装したまったく同じ public API を持ちます (これがプレースホルダー) 。

両プラグインとも同じ名とアセンブリバージョンを共有する必要があります。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 を使用できます。


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