Version: 2022.3
言語: 日本語
Java と Kotlin のソースプラグイン
Unity のデフォルトのアクティビティを拡張する

C# スクリプトから Java や Kotlin のプラグインコードを呼び出す

C# スクリプトから Java コードを呼び出すために、Unity は C++ を通じて Android Java Native Interface (JNI) と通信する C# API を提供します。Unity は、JNI を使用して Java コードと相互作用するために使用できる低レベルと高レベルの両方の API を提供します。

低レベル API

低レベルの AndroidJNI クラスは、JNI 呼び出しをラップして、JNI メソッドに直接マップする静的メソッドを提供します。AndroidJNIHelper API は、主に高レベルの API で使用されるヘルパー機能を提供しますが、特定の状況で役に立つことがあります。

高レベル API

高レベルの AndroidJavaObjectAndroidJavaClassAndroidJavaProxy の API は、JNI 呼び出しに必要な多くのタスクを自動化します。また、キャッシュを利用して Java への呼び出しを高速化します。 AndroidJavaObjectAndroidJavaClass の組み合わせは、 AndroidJNIAndroidJNIHelper の上に構築されていますが、Java クラスの静的メンバーにアクセスするために使える静的メソッドなどの追加機能が含まれています。

AndroidJavaObjectAndroidJavaClass のインスタンスは、それぞれjava.lang.Objectjava.lang.Class のインスタンスと 1 対 1 の対応関係を持っています。これらは、Java/Kotlin のコードとの 3 種類のインタラクションが可能です。

  • メソッドを呼び出し (Call) ます。
  • フィールドの値を取得 (Get) します。
  • フィールドの値を設定 (Set) します。

各インタラクションには静的バージョンもあります。

  • 静的メソッドを呼び出し (CallStatic) ます。
  • 静的フィールドの値を取得 (