プログラミング系のネタをまとめていきます。

Androidプラグインの作り方

JARの作成


Admobを参考にjarのメソッド呼び出しについて。

Unityから呼び出される関数。

public class AdBannerController
{
	static public void tryCreateBanner(final Activity activity, final String publisher, final String testDevice, final int layoutGravity)
	{
		activity.runOnUiThread(new Runnable()
		{
			public void run()
			{
				// バナー生成処理
			}
		});
	}
}

eclipse上で空のAndroidアプリを作成し、動作をテストしておきます。
問題がなければ、上記クラスをjarに出力します。
Package Explorer でjavaファイルを右クリックし、以下のように選択します。
Export - Java - JAR file
選択されているファイルに問題がなければ、JAR Exportダイアログの Finish ボタンを押します。
出力された jar ファイルはUnityの
Assets/Plugins/Android
の下に配置します。

Unityからの呼び出し


// プラグインのインスタンスを取得
AndroidJavaClass plugin = new AndroidJavaClass("jp.radiumsoftware.unityplugin.admob.AdBannerController");

// UnityPlayerのインスタンスを取得
AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");

// 実行中のUnityアプリのActivityを取得(プラグインに渡すもの)
AndroidJavaObject activity = m_unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");

// プラグインの tryCreateBanner メソッド呼び出し
plugin.CallStatic("tryCreateBanner", activity, mAdMobPublisherId, mAdMobTestDeviceId, mLayoutGravity);

Androidのみの処理なので、
#if UNITY_ANDROID && !UNITY_EDITOR
 :
#endif
でくくっておきます。
各クラス
AndroidJavaObjectUnity内で java.lang.Object を扱うクラス
AndroidJavaClassUnity内で java.lang.Class を扱うクラス

参考リンク


公式マニュアル
http://docs-jp.unity3d.com/Documentation/Manual/Pl...

Unity ネイティブプラグインの作成について
http://www.slideshare.net/tatsuhikoyamamura/unity-...

Menu

メインコンテンツ

プログラミング

機器

Macツール

各種情報

Wiki内検索

おまかせリンク

Androidアプリ

AdSense

技術書


管理人/副管理人のみ編集できます