デスクトッププラットフォーム用のプラグインは、C、C++、Objective C で書かれたネイティブコードのライブラリです。ここでは、macOS、Windows、Linux のためのプラグインを説明します。詳細については、ネイティブプラグイン に関するドキュメントを参照してください。
macOS プラグインはバンドルとして展開することができますが、IL2CPP スクリプティングバックエンド (緩い C++ ファイル) を使用する場合は、[DllImport("__Internal")]
構文で呼び出すことができます。緩い C++ プラグインの詳細については、macOS Player - IL2CPP のための C++ ソースコードプラグイン のドキュメントを参照してください。
Xcode でバンドルプロジェクトを作成するには、以下を行います。
Xcode での作業の詳細については、Apple の Xcodeに関するドキュメント を参照してください。
extern "C"
{
float ExamplePluginFunction ();
}
Windows のプラグインは、エクスポートされた関数を持つ .dll ファイル、または、IL2CPP を使用している場合は、緩い C++ ファイルです。.dll_ ファイルを作成できる大抵の言語や開発環境でプラグインを作成できます。名前マングリングの問題を避けるには、C リンケージを持つ C++ 関数を宣言する必要があります。
Linux 上のプラグインは、エクスポートされた関数をもつ .soファイルです。これらのライブラリは、通常 C または C++ で書かれていますが、どの言語でも使用できます。他のプラットフォームと同様に、名前マングリングの問題を避けるために、C リンケージを持つ C++ 関数を宣言する必要があります。
Unity では、Plugin Inspector がプラグインを管理します。Plugin Inspector にアクセスするには、Project ウィンドウ でプラグインファイルを選択します。スタンドアロンプラットフォームの場合は、ライブラリが対応している CPU アーキテクチャを選択します。クロスプラットフォームのプラグインの場合は、.bundle ファイル(macOS の場合)、.dll ファイル (Windows の場合)、.so ファイル (Linux の場合) を含む必要があります。Unity は、ターゲットプラットフォームに適したプラグインを自動的に選択し、プレイヤーに加えます。詳細については、Plugin Inspector を参照してください。
ビルドしたプラグインを Assets フォルダーまたは Unity プロジェクトの適切なアーキテクチャ固有のサブディレクトリに配置します。C# スクリプトから呼び出すと、Unity は名前でそれを見つけます。例: [DllImport ("PluginName")] private static extern float ExamplePluginFunction ();
ノート: PluginName
がライブラリのプレフィックスやファイル拡張子を含まないように注意してください。例えば、プラグインファイルの実際の名前は、PluginName.dll (Windows の場合) や libPluginName.so (Linux の場合) にします。
これらのプロジェクトをダウンロードして使用することで、Unity でのプラグイン実装の方法を学ぶことができます。