Techブログを書かせていただけることになりました、
JWordのokiyoです。自称iOSエンジニアです。
ここ最近、UnityのAndroidプラグインを作成することをやらせていただいているので、
そちらの方法をご紹介いたします。
UnityでネィティブのAndroid(Java)のメソッドをコールすることができます。
複雑な内容(サービスを使う等)の場合、Androidプロジェクトをjarファイル化してから
jarファイルにアクセス方法が作りやすく分かりやすいのですが・・・。
簡単な内容については、直接ネィティブクラスにアクセスすれば良いので、
Unity上でコーディングでき、とてもオススメです。
例えば、ウェブブラウザを表示する時など、
jarファイル化してURLスキームを指定してIntentを発行、、等もいいのですが、
ささっとUnity上で動作する感じで作れますので、おすすめです。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public static void OpenBrowser(string url) { Debug.Log("OpenBrowser url:"+url); using (AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) using (AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity")) using (AndroidJavaObject browserIntent = new AndroidJavaObject("android.content.Intent")) using (AndroidJavaClass uri = new AndroidJavaClass("android.net.Uri")) { browserIntent.Call<AndroidJavaObject>("setAction", "android.intent.action.VIEW"); browserIntent.Call<AndroidJavaObject>("setData", uri.CallStatic<AndroidJavaObject>("parse", url)); currentActivity.Call("startActivity", browserIntent); } } |
他にも、GooglePlayService等から、ユニークIDを取得したい時、
下記の内容で作ればOKです。
この場合、UnityのAssets->Plugins->Androidフォルダの中に、GooglePlayServicesを配置します。
Androidフォルダの中のファイルにはアクセスすることができます。
1 2 3 4 5 6 7 8 9 10 11 |
public static string GetDeviceId() { using (AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) using (AndroidJavaObject context = unity.GetStatic<AndroidJavaObject>("currentActivity").Call<AndroidJavaObject>("getApplicationContext")) using (AndroidJavaClass instanceId = new AndroidJavaClass("com.google.android.gms.iid.InstanceID")) { string deviceId = instanceId.CallStatic<AndroidJavaObject>("getInstance", context).Call<string>("getId"); Debug.Log("deviceId:" + deviceId); return deviceId; } } |
これでAndroidで実行時、AndroidJavaClass or AndroidJavaObjectのクラス経由で、
ファイルを読みに行ってくれます。
ちなみに、パーミッション設定もお忘れなく。。
(UnityのAssets->Plugins->Androidフォルダの中に、AndroidManifest置いて、パーミッションを追加しておけばOK!)
下記を参考に作らせていただきました。http://docs.unity3d.com/jp/current/ScriptReference/AndroidJavaObject.CallStatic.html
http://qiita.com/YukiMiyatake/items/c8c2ef396fbf4457ba4f
このブログ、みんなカッコいい内容で更新されていますね~。
しょぼくてスマソです><。
次は誰でしょうか~。目が離せませんね!
でわでわ~☆ミ