環境
OS X Mavericks 10.9.4
Android Studio (Beta) 0.8.2
Unity 4.5.2f1
空のプロジェクトを作成
Android Studioで[Add No Activity]を選択して空のプロジェクトを作成。
jarファイルの追加
classes.jarファイルをプロジェクトのlibsフォルダにコピー。
Macの場合のパス
<Unityインストールディレクトリ>/Unity.app/Contents/PlaybackEngines/AndroidPlayer/release/bin/classes.jar
android.jarファイルをプロジェクトのlibsフォルダにコピー。
パス
<Android SDK Root>/platforms/android-19/android.jar
※今回はAndroid 4.4のjarを使用
Sync Project with Gradle Files
Native Plugin側のコード
<Project Root>/app/src/main/java/<Package Name>/配下にJava Classを新規作成。
適当にToastを表示するだけのプラグインを作成。
package com.example.unityplugin; import android.app.Activity; import android.widget.Toast; import com.unity3d.player.UnityPlayer; public class AndroidNative { public static void showToast() { final Activity activity = UnityPlayer.currentActivity; activity.runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(activity, "Hello Native Plugin!", Toast.LENGTH_SHORT).show(); } }); } }
build.gradleの編集
// apply plugin: 'com.android.application' apply plugin: 'java' jar.baseName = 'android-native-plugin' version = '1.0.0' //android { // compileSdkVersion 20 // buildToolsVersion "20.0.0" // // defaultConfig { // applicationId "com.example.unityplugin" // minSdkVersion 15 // targetSdkVersion 20 // versionCode 1 // versionName "1.0" // } // buildTypes { // release { // runProguard false // proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' // } // } //} dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) }
jarファイルの作成
Android StudioのTerminalを開き下記のコマンドを実行。
./../gradlew jar
jarファイルは下記のディレクトリ配下に作成される。
<Project Root>/app/build/libs/
作成したjarファイルをUnityプロジェクトのAssets/Plugins/Android/ディレクトリ配下に配置。
呼び出し側コード
using UnityEngine; using System.Collections; public class Toast : MonoBehaviour { // Use this for initialization void Start () { AndroidJavaClass androidNativePlugin = new AndroidJavaClass("com.example.unityplugin.AndroidNative"); androidNativePlugin.CallStatic("showToast"); } // Update is called once per frame void Update () { } }
動作確認