Unityのうんたら

1.空のプロジェクトを作成


今のAndroid Studioは直接JavaLibraryを作成する事が出来ないので、最初は「File > New > New Project...」から空のプロジェクトを作成。

「Application name」「Company Domain」「Package name」「Project location」
上記4項目は、何でもいい

ただ、「Minimum SDK」には目的となるバージョンを指定し、「Add an activity to Mobile」は「Add No Activity」以外を選択する事。

「Activity Name」「Layout Name」「Title」「Menu Resource Name」
上記4項目も 何でもいい。最早、デフォルトのままで。



画面左上の「Androidタブ」を「Projectタブ」に変更

2.モジュールをJavaLibraryとして作成


Projectエリアの何もない所で右クリック。「New > Module」でCreate New Moduleウィンドウを表示し、「Java Library」を選択してモジュールを作成



「Library name」「Java package name」「Java class name」
上記3項目は、任意の名称を設定する(ここで設定した値にて、Unity側からアクセスするので他と被らない命名を心掛ける事

ここでは例として、「Library name : androidexampleplugin」「Java package name : com.android.example.plugin」「Java class name : AndroidExamplePlugin」とする

3.モジュールに.jarを追加




作成したモジュール内にある「build.gradle」を下記の通りに編集する
apply plugin: 'java'

sourceCompatibility = '1.7'             // コンパイルSDKのバージョンを指定
jar.baseName = 'AndroidExamplePlugin'      // .jarの名称
version = '1.0.0'                       // .jarのバージョン値

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile files('/Applications/Unity/Unity.app/Contents/PlaybackEngines/AndroidPlayer/release/bin/classes.jar')  /*追記する行,classes.jarを追加する*/
    compile files('/Users/ユーザ名/Library/Android/sdk/platforms/android-22/android.jar')  /*追記する行,android.jarを追加する*/
}

tasks.withType(JavaCompile) {
    options.encoding = 'UTF-8'      // コンパイル時の文字コード指定
}

因みに、追記した行に記されている.jarへのパスはPC環境によって異なる為、絶対にパスの確認を怠らない事
また、上記例でのパスには「/」が使用されているが、これは漢発環境がMacの場合であり、Windowsの場合は代わりに「\\」を使用する事

追記後、AndroidStudioのSync Project with Gradle Filesを実行しておく。


4.javaクラスの作成




モジュールの.javaファイルを編集

ここでは確認用として、toast表示機能のみを付ける

package com.android.example.plugin;

import android.app.Activity;
import android.widget.Toast;
import com.unity3d.player.UnityPlayer;

public class AndroidExamplePlugin {
    // static でないとUnityが呼び出してくれなかった。何故?
    public static void showToast() {
        final Activity activity = UnityPlayer.currentActivity;
        
        // runOnUiThreadを使わないと怒られるらしい
        activity.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(activity, "successful!", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

5.jar出力




画面左下の「Terminal」を開き、作成したモジュールのディレクトリまで移動。

../gradlew jar

上記コマンドで.jarファイルを作成(Windowsの場合は「..\gradlew jar」)



TerminalウィンドウにBUILD SUCCESSFULと表示されれば、jar出力は成功です。

「モジュールディレクトリ/build/lib」直下に「AndroidExamplePlugin-1.0.0.jar」が出力されています。

AndroidStudioでの操作は終わり、ここからはUnityの操作に移ります。

6.Unityから生成したAndroidプラグインを呼び出す


Assets/Plugins/Android/直下に、先ほど作成した「AndroidExamplePlugin-1.0.0.jar」ファイルを配置

.jarの呼び出しは下記の通り

using UnityEngine;
using System.Collections;
 
public class Caller : MonoBehaviour {
	void Start () {
		using ( AndroidJavaClass plugin = new AndroidJavaClass("com.android.example.plugin.AndroidExamplePlugin")){        // 呼び出しは「パッケージ名+クラス名」
			plugin.CallStatic("showToast");
		}
	}
}

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

メニュー













【メニュー編集】

メンバーのみ編集できます