デスクトッププラットフォーム用のプラグインは、C、C++、Objective C で書かれたネイティブコードのライブラリです。ここでは、Windows、macOS、Linux のためのプラグインを説明します。詳細については、ネイティブプラグイン に関するドキュメントを参照してください。
macOS プラグインはバンドルとして展開することができますが、IL2CPP を使用する場合には、C++ ファイルを展開して、[DllImport(“__Internal”)] 構文を呼び出すことができます。展開した C++ プラグインの詳細については、macOS Player - IL2CPP用の C++ ソースコードプラグイン のドキュメントを参照してください。
XCode でバンドルプロジェクトを作成するには、XCode 11 を開き、File > New > Project を選択し、macOS > Framework & Library > Bundle に移動します。XCode を使う作業についての詳細は、Apple の XCode に関するドキュメントを参照してください。
プラグインは、64 ビットアーキテクチャを含むユニバーサルバイナリとしてビルドする必要があります。または、dylib ファイルを個別に用意することもできます。 C++ (.cpp) または Objective-C (.mm) を使用してプラグインを実装する場合は、名前マングリングの問題を避けるために、関数を C リンケージで宣言する必要があります。
extern "C"
{
float FooPluginFunction ();
}
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 を参照してください。
いったんバンドルをビルドすると、Unity プロジェクトの Assets フォルダー (または、アーキテクチャ特有の適切なサブディレクトリ) に配置する必要があります。すると、Unity は以下の例のように、関数を定義したときの名前で探します。
[DllImport ("PluginName")]
private static extern float FooPluginFunction ();
ノート: PluginName
がライブラリのプレフィックスもファイル拡張子も含まないように注意してください。例えば、プラグインファイルの実際の名前は PluginName.dll (Windows) や libPluginName.so (Linux) にします。
プロジェクト | 説明 | リンク |
---|---|---|
最もシンプルなプラグインの例 | このプロジェクトでは、数字の表示、文字列の表示、2 つの float の加算、2 つの int の加算などの基本的な操作を実装します。 | Unity の GitHub リポジトリへのリンクから、Simplest Plugin Example をダウンロードしてください。このプロジェクトには、Windows、macOS、Linux のプロジェクトファイルが含まれています。 |
Native Renderer Plugin | これは、低レベルのレンダリングプラグインの例です。このプロジェクトでは、以下のことを実演します。 - 通常のレンダリングがすべて完了した後、C++ コードから回転する三角形を描画します。 - Texture.GetNativeTexturePtr を使って C++ コードにアクセスすることで、C++ コードからプロシージャルなテクスチャを埋めます。 |
Unity の GitHub リポジトリへのリンクから、Native Renderer Plugin をダウンロードしてください。このプロジェクトには、Windows、UWP、macOS、WebGL、Android のファイルが含まれています。 |
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.