APIについてご紹介しました。今回は、Unity開発におけるAndroidActivityの拡張方法についてご紹介します。Unityでモバイルアプリを開発していると、ネイティブ機能(※1)を使用したくなる時がありますよね。UnityはAssetが豊富なので、大抵のことはそれらを使用することで解消できます。汎用的な機能であれば、Assetもすぐ見つかる可能性も高いですが、そのプロジェクト固有で作成しなければいけない処理等Assetを使用できずに自らネイティブの処理を作成しなければいけない時もあります。iOSでは、ビルドした際にXCodeプロジェクトが出力されるため、Library配下に好きなファイルを追加すれば自由にネイティブに処理を追加することが出来ます。Studioプロジェクトを作成する方法でご紹介します。適当に作業用のフォルダを用意しましょう。私は、Unity5というフォルダを作成しました。次は、その中に”ADT”,”ASPJ”という2つのフォルダを作成してください。Unityプロジェクトもここに配置します。————-Unity5├ADT├ASPJ└UnityProject————-Androidで表示した際にUnityで作成したものが表示されているのが分かりやすいように適当なUIを作ります。UnityでUIを作成し終わったら、BuildSettingsを開いて、Androidにプラットフォームを切り替えてください。PlayerSettingsで、各自必要な項目を設定します。次に、Unityでのビルドです。Projectという項目にチェックを入れます。すると、ビルドボタンがエクスポートボタンに変ります。この状態でエクスポートボタンを押すと、Eclipse用のAndroidプロジェクトが出力されます。出力先は、先ほど作成したADTフォルダを指定しましょう。ビルドが終わるのをしばらく待つと、自動的に出力先のフォルダを表示したエクスプローラーが起動します。ADTフォルダ配下に、PlayerSettingsのProductNameに設定した名前のフォルダが出来ているはずです。その中身はEclipse用プロジェクトを構成するファイルです。AndroidManifestやsrcフォルダ、resフォルダがありますね。このフォルダが日本語になっている(ProductNameに日本語を入力している)方は、適当な英数字にリネームしておいてください。Eclipse用のプロジェクトが作成出来たら、AndroidStudioを開いてください。etc.)を選択して、出力されたフォルダを指定しましょう。※ここで日本語名になっていると、インポートエラーが発生します出力先には、ASPJを指定します。インポートが終わると、AndroidStudioプロジェクト用のフォルダ構成になったファイルがASPJ下に出力されます。app/src/main/java/パッケージ名配下にUnityのActivityファイルがあるので、それを継承してオリジナルなActivityを用意しましょう。今回は、CustomUnityActivityというクラスにしました。}}ここまでくれば後は、通常のAndroidStudioでのアプリ開発と同じです。ライブラリの追加はlibs下に、パーミッションの追加があればapp下のAndroidManifestに追記してください。startActivityForResultやonActivityResultも追加し放題です。簡単にActivity拡張が出来ましたね。UnityからJavaへの処理要求は、Java側に必要なメソッドを要したうえでAndroidJavaClassを使うだけです。Unity側の処理に変更を加えた場合は、再度エクスポートしなおしてください。AndroidStudio用プロジェクトを作成済みであれば、出力されたEclipse用プロジェクトの中にあるassetsフォルダで、AndroidStudioプロジェクトのapp/src/main/assetsを置き換えてください。※src/src/main/assetsを全て削除した後に、エクスポートしたassetsをコピーUnity側で作成したものはバイナリファイルとしてassetsに出力されるようで、ここの中身を差し替えるだけで変更が反映されました。以上で、Unity開発におけるAndroidActivityの拡張方法は終了です。Java側の処理をデバッグする際もステップ実行を行えて非常に便利なので、Unityで通常のビルドした行ったことがない方は一度試してみてはいかがでしょうか?最後までご覧いただきありがとうございました。弊社では全国各地の請負い(ご自宅)で作業協力頂ける、フリーランスエンジニアの方を常時探しております。ご興味ある方は、お気軽にお問い合わせ下さい。コメントをキャンセルメールアドレスが公開されることはありません。BlogFeathersFeathersHTMLJavaScript。