Version: 2021.3
  • サポートあり
  • サポートなし、非推奨
言語: 日本語
マネージプラグイン
デスクトップ向けのプラグインのビルド

ネイティブプラグイン

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
 // iOS では、プラグインは静的に実行ファイルに
 // リンクしているので、ライブラリ名として __Internal を
 // 使用しなければなりません。
 [DllImport ("__Internal")]
 #else
 //他のプラットフォームでは、プラグインを動的に読み込んで
 // いるので、プラグインの名前を動的ライブラリに渡します。
 [DllImport ("PluginName")] 
 #endif
 private static extern float ExamplePluginFunction ();
 void Awake () {
 // プラグイン内部で FooPluginFunction を呼び出します。
 // 5 をコンソールに表示します。
 print (ExamplePluginFunction ());
 }
 }

その他の情報

プラグインでレンダリングを実装する方法など、ネイティブプラグインを使用してサードパーティのコードライブラリと相互作用する方法については、以下のページを参照してください。

マネージプラグイン
デスクトップ向けのプラグインのビルド

AltStyle によって変換されたページ (->オリジナル) /