CrossRoadスマートフォン用の表示で見るCrossRoadAR、MR、VR、Babylon.jsを中心とした技術ブログ。APIをUnityで使おうと思い、サンプルのAndroidプロジェクトのプラグイン化を試しています。StudioとUnityの連携について色々とわかってきました。Studioの基礎知識も含めて解説したいと思います。aarの生成3.終わりになお、下記の環境で検証しています。Studioの基礎知識Googleが2013年頃から提供している、Andoridアプリケーションの開発環境です。従来のEclipse+Android向けプラグインでの開発方法とは、色々なところで手順が異なっています。参考までに、異なる例をいくつか解説します。Studioでは色々な表示が選べるようになっています。表示を変更するには、左上の垢枠部分を選択して一覧を表示します。Viewは、従来のEclipseと同様にディレクトリ構造がそのまま表示されています。Viewの内容は一致しています。Viewは、実装に必要なファイルが前面に表示され、かなりすっきりしています。Viewが複数あることに気づかず戸惑いました。Viewになっていたので、「manifestフォルダはどこ?」になってしまいました。ビルドシステムEclipseのときと異なり、Gradleという仕組みが導入されました。下記に紹介する記事で勉強させていただきました。ありがとうございます。Gradleとは何か?、については下記の解説が大変わかりやすいです。Studio使用時には条件が異なりますので、それ以前をご参照ください。StudioでGradleを使うときの便利な点が書かれており、参考になります。Studioでプロジェクトを作るといくつかのgradleファイルができるのですが、よく使うのはbuild.gradleです。build.gradleの使い方は2-2で解説します。Studioでは、build.gradleの記述を少し変えるだけで、ビルドする対象をApplication(apk)かModule(aar)に分けることができます。apkは従来通りAndroidアプリそのものです。Libraryの略で、Androidプロジェクトのビルド結果(classes.jar)、およびAndroidアプリに必要なプロジェクト情報をまとめたものです。aarファイルはzip圧縮されているので、例えば下記のコマンドで簡単に中身を見ることができます。Studioでのアプリの作り方に依存しますが、例えばこのようになります。Studioで書いたソースコードをコンパイルしたものです。その他にも色々ありますが、細かくなるため割愛します。moduleを作る手順いくつかの記事を参考にさせていただきました。ありがとうございます。Studioでプロジェクトを作成します。次に、Activityを選択します。Activityを選択します。Moduleを選択します。Libraryを選択して、Nextをクリックします。今回のモジュール名を決めます。ここではnativepluginとしました。すると、このように、nativepluginという名前のフォルダが新しく生成されます。build.gradleの編集ここまで作ると、build.gradleが三種類できています。今回のmodule作成用には、"Module:nativeplugin"と書かれたファイルだけを使います。build.gradleは、ビルドに関する設定をまとめたファイルで、"{}"の単位で設定をまとめます。Unity向けのmoduleを作るには、まずUnityのライブラリを追加します。Unityのライブラリは、インストールしたPC内にあります。MacでUnity5.3.5f11の時点の場合、下記にあります。Studioにコピーするため、右クリックでcopyを選択します。右クリックしてPasteします。このとき、classes.jarをドラッグすると、copyではなくmoveになり、元の場所からファイルが消えてしまうので注意してください。次に、build.gradleのdependenciesに以下を追加します。files('libs/classes.jar')}続けて、gradleファイルとAndroidのプロジェクトファイルをsyncします。これで、AndroidでもUnityが準備しているpackageをimportすることが可能になります。"を使っているか、などを確認してみてください。build.gradleの最後に以下を追加します。}}また、以下はコメントアウトしておきます。'junit:junit:4.12'まとめると、build.gradleはこのようになります。UnitTest系のコードをコメントアウトするこの時点でgradleをビルドすると、以下の様にエラーがでます。今回、UnitTestは使わないので、対象のソースコードをこのようにコメントアウトしておきます。gradleを実行します。次に、下記の場所で右クリックし、javaのクラスファイルを生成します。Viewで追加もできます。下記の様なコードを書きます。gist084d8d4a6cb21d80ee96273130d3a6ca(Log.eにしたのは、LogCatで目立たせるためです)この二つのメソッドがUnityから呼ばれることになります。UnitySendMessageは、Androidで処理した結果をUnityにコールバックするためのメソッドです。これについては次回のブログで解説します。この時点で、一度gradleのビルドを実施します。下記の赤枠部分をクリックして、Terminalを表示させます。:nativeplugin:assembleReleaseaarの生成が始まります。完了すると、このように表示されます。この時点で、aarが生成されています。-release.aar今回の場合、Unityで使うのはjarのみでよいので、jarをUnityにインポートします。classes.jarに目的のjarがあるので、手間を省くため、こっちを使います。Unityの持つclasses.jarとかぶる懸念があるので、classes.jarをplugin.jarのようにリネームします。Nativeの機能を使います。読み込むとき、jarのファイル名は関係ないようです。ドラッグすれば、あとはUnity側の処理だけです。3.終わりに今回のプロジェクト一式はこちらです。nativeのメソッドを呼ぶ方法を紹介します。2018の11日目の投稿です。API(Android用...前回の続きです。»ProfileAR、MR、VR、Babylon.jsを中心とした技術ブログです。広く色々な技術を勉強するのが好きで、あれこれ書いています。詳細なプロフィールはこちらをご確認ください。2020)■プライバシーポリシー■こちらに記載しておりますのでご確認ください。■お問い合わせ■こちらよりお願いいたします。月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。