以前のリビジョンの文書です
Unity からAndroid、Javaのプログラムを呼び出してみます。ライブラリの作成にはEclipseを使います。
Android開発環境の構築 Eclipse編を参考にしてEclipseのAndroid開発環境を構築します。
Eclipse を起動しファイル → 新規 → Androidアプリケーション・プロジェクトを選択し新規アプリケーションを作成します。
アプリケーション名 | HelloWorld |
プロジェクト名 | HelloWorld |
パッケージ名 | plugin.helloworld |
「カスタム・ランチャーアイコンを作成する」「アクティビティーの作成」のチェックを外し、「このプロジェクトをライブラリとしてマークする」にチェックを入れプロジェクトを作成します。
ソースを追加します。srcフォルダを右クリック → 新規 → クラスと選択しソースファイルを追加します。
パッケージ | plugin.helloworld |
名前 | HelloWorld |
空のHelloWorld クラスが作成されました。次はプラグインを実装していきます。
package plugin.helloworld; public class HelloWorld { public HelloWorld() { } public static String getHelloWorld_Static() { return "Call getHelloWorld_Static() Method"; } public String getHelloWorld() { return "Call getHelloWorld() Method"; } }
ただ文字列を返すだけの単純なプラグインです。この状態でビルドするとプロジェクトのbinフォルダにhelloworld.jar ファイルが作成されます。Eclipse 側の作業はここまでです。
using UnityEngine; using System.Collections; using System; ublic class HelloWorldPlugin : MonoBehaviour { public static String getHelloWorld_Static() { #if UNITY_ANDROID AndroidJavaClass plugin = new AndroidJavaClass("plugin.helloworld.HelloWorld"); String hello = plugin.CallStatic<String>("getHelloWorld_Static"); return hello; #endif } public static String getHelloWorld() { #if UNITY_ANDROID AndroidJavaObject plugin = new AndroidJavaObject("plugin.helloworld.HelloWorld"); String hello = plugin.Call<String>("getHelloWorld"); return hello; #endif } }
Unity から呼び出す準備が整いました。
作成したHelloWorld プラグインが使用できるか試してみます。Assets フォルダにC# スクリプトを追加します。名前は「test」として アプリケーションの中身を実装していきます。今回は動作確認さえできれば良いので、ログを出力するだけのものを実装します。
using UnityEngine; using System.Collections; public class test : MonoBehaviour { void Start () { Debug.Log ( HelloWorldPlugin.getHelloWorld() ); Debug.Log ( HelloWorldPlugin.getHelloWorld_Static() ); } void Update () { } }
testスクリプトをHierarchy のMain Camera のドラッグ&ドロップして関連付けします。
実際にAndroid端末にインストールして実行してみます。 Unity Editor ではエラーが出ますので注意して下さい。
getHelloWorld() getHelloWorld_Static() 関数が呼ばれているのが確認できます。