【Unity】Androidのネイティブの機能を使う

UnityでAndroidのネイティブプラグイン機能を使うためには、jarファイルを作ったりNDKでsoをつくったりいろいろありますが、両方共変更があるたびに作成し直さないといけないせいで少し手間です。今回はUnityだけで完結する、Androidのネイティブ機能のAlertDialogを表示する方法を書いていきます。

Activityを取得する

Activityを取得するにはAndroidJavaClassを使用してUnityPlayerクラスを取得し、そのクラスを使ってcurrentActivityをAndroidJavaObjectとして取得します。

 

AndroidJavaClassによってcom.unity3d.player.UnityPlayerクラスを作成しています。そしてそのクラスの静的クラスであるcurrentActivityを取得するためにGetStaticメソッドによってAndroidJavaObjectとして取得します。

 

AlertDialogを表示する

まずUIを描画するためにrunInUiThreadを呼び出します。

 

次にAlertDialogを作成していきます。

 

まずAlertDialog.Builderを作成します。そして、AlertDialog.Builderのインスタンスメソッドを呼び出し、各ステータスを追加します。作成に必要なステータスを追加したらAlertDialogを作成するためにAlertDialog.Builderのcrateメソッドを実行して作成し、showメソッドによってダイアログを表示させます。

 

リスナーを作成する

ダイアログのボタンを押した時のリスナーを作成します。

このクラスを作成し、AlertDialog.Builderに登録すればダイアログのボタンが押された時などにコールバックを受け取ることが出来ます。

 

終わりに

今回はUnityからAndroidのネイティブ機能を使う方法について書きました。基本的にはAndroidJavaClassとAndroidJavaObjectを作成し、書き方は違いますが普段Androidで使っているように設定したり実行したりします。あまりにもネイティブでいろいろなことを実行しようとするとコードがとても複雑になってしまいますが、簡単な機能であればUnityだけで完結するので楽になります。

 

 

 

次回からはSNSにシェアしていく方法について書いていきます。一番初めはFacebookSDKを使ってシェアする方法について書こうと思います。

 

 

では、また。

 

●この記事を書いた人