ドキュメント

Unity Engine

Unity Engine

ネイティブプラグイン

Details on using native plug-ins.
読み終わるまでの所要時間 4 分最終更新 1ヶ月前

Unity はネイティブプラグインをサポートしています。ネイティブプラグインは、C、C++、Objective-C などの言語で記述できるネイティブコードのライブラリです。プラグインを使用すると、C# で記述するコードでこれらのライブラリから関数を呼び出すことができます。Unity とミドルウェアライブラリや既存の C/C++ コードをこの機能で統合できます。
ネイティブのプラグインは、C# スクリプトが他のユーザースクリプトにアクセスする簡単な C インターフェースを提供します。また、ある低レベルのレンダリングイベントが発生したとき (例えば、グラフィックススデバイスを作成したときなど) に、ネイティブプラグインによってエクスポートされた関数を呼び出すことも可能です。詳細は、低レベルのネイティブプラグインインターフェース を参照してください。
ネイティブプラグインの例については、Native Renderer Plugin を参照してください。

ネイティブプラグインの使い方

ネイティブプラグインを使用するには、以下を行います。
  1. 必要な機能にアクセスするための関数を C 言語で記述します。
  2. 関数をライブラリにコンパイルします。
  3. Unity で、ネイティブライブラリの関数を呼び出す C# スクリプトを作成します。
ネイティブプラグインは、ターゲットプラットフォームのネイティブコードのコンパイラーでビルドされます。プラグイン関数は C 言語の呼び出しインターフェースを使用するため、名前マングリングの問題を避けるために、C リンケージで関数を宣言する必要があります。

例

1 つの機能を持つ非常に簡単なネイティブライブラリに、以下のようなコードがあるとします。
float ExamplePluginFunction () { return 5.0F; }
このコードに Unity 内からアクセスするには、以下の C# スクリプトを使用します。
using UnityEngine;using System.Runtime.InteropServices;class ExampleScript : MonoBehaviour { #if UNITY_IPHONE // On iOS plugins are statically linked into // the executable, so we have to use __Internal as the // library name. [DllImport ("__Internal")] #else // Other platforms load plugins dynamically, so pass the // name of the plugin's dynamic library. [DllImport ("PluginName")] #endif private static extern float ExamplePluginFunction (); void Awake () { // Calls the ExamplePluginFunction inside the plugin // And prints 5 to the console print (ExamplePluginFunction ()); } }

追加リソース