ほげほげ(仮)スマートフォン用の表示で見るスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。読者です読者をやめる読者になる読者になるほげほげ(仮)仮死状態2015-07-10AndroidStudioを使ってUnityとAndroidの連携UnityAndroid概要UnityとAndroidを連携するには色々やり方あると思いますが、AndroidStudioを使ってaarを作成し連携させます。調べてたらEclipseとjarを使った連携をよく見かけましたが、ADTがもう開発終わってしまうので今後はAndroidStudioを使うべきでしょう。Blog)このやり方は探しても見つからなかったので、手順的なものを簡単にまとめておきます。パッケージ名とminバージョン等を設定しておきます。ここでは例としてパッケージ名はcom.sample.samplegameとしました。フォルダ作成プラグインAndroidプラグイン用にAssets/Plugins/Androidを作成しておきます。AndroidStudioAndroidStudioのプロジェクトを配置する用のフォルダを作成します。Gitで管理対象にしたいので下のようにプロジェクト直下にフォルダを作ります。ここではAndroidProjectという名前にしましたが好きなようにしても問題無いです。TempAndroidStudioプロジェクトプロジェクト作成ここで本来であれば直接ライブラリプロジェクトを作りたいのですが、現時点ではできないようなので一度アプリ用のモジュールを作ります。先ほど作ったAndroidProjectフォルダにに普通にAndroidStudioでプロジェクトを作ります。ここで作ったアプリモジュールを直接使用することは無いのでパッケージ名などは適当で良いです。確認用に使う可能性もあるのでUnityで設定したものとは別のものにしたほうがいいかもです。Moduleを選択します。Libraryを選択します。モジュール名はlibとかにします。ここで重要なのはパッケージ名をUnityで設定したものと同じものにしないことです。この例ですとcom.sample.samplegame.libという感じに末尾にlibを付与しました。Activityを選択します。モジュールを作成すると下のような感じの構成になると思います。Unityのjarを配置Unity.app/Contents/PlaybackEngines/AndroidPlayer/release/bin/classes.jarを先ほど作ったモジュールのlibsフォルダへコピーしてきます。Gradle設定モジュール内のbuild.gradleに下記を追加します。UnityからAndroidでビルドした時にUnity側が用意するjarと先ほどコピーしたjarがカブってしまうのでビルド時に除外するようにします。}}aar作成まだ特にコード書いてないですが、先にaarを作成する手順を。GradleのassembleReleaseタスクを実行するとモジュール内のbuild/outputs/aar/lib-release.aarが作成されます。この作成されたaarをUnity側のAssets/Plugins/Androidへ配置すると連携できるようになります。毎回コピペするのも面倒なのでGradleタスクを作ります。'samplegame-lib.aar')}この作ったexportAarタスクを実行するとビルドとコピー、リネームをしてくれます。このタスクはAndroid側のコード等を変更したら毎回実行する必要があります。連携実装サンプルでUnityからAndroidのToast表示処理を呼び出してみます。このあたりの詳細はマニュアルとググってください。Android引数をとってToast表示してます。Unityから呼び出したときはUIスレッドではないのでrunOnUiThreadを使ってます。}}クラスを作ったらGradleのタスクを実行してaarを更新しておきます。これ忘れたら動かないので。UnityとりあえずテキトーにGUIのボタンから呼び出す感じです。GUIイベントの設定方法等は省略します。Runで実行して試してみます。補足ManifestファイルaarにはManifestファイルが含まれるのですが、ここにはアプリ全体に関わるようなものを記述しないようにしないでください。android.intent.action.MAINやandroid.intent.category.LAUNCHERをもったActivityを書いてしまうと、Unity側が生成するManifest側と合わせて2つ存在することになるので、アプリが2つインストールされてる感じになったりします。パッケージ名もUnity側と同じものを付けないようにします。ManifestをカスタマイズするときはAssets/Plugins/AndroidにAndroidManifest.xmlを作ってそれを編集しましょう。詳細はマニュアル等を見てください。resAndroidStudioのresディレクトリにあるものもaarに含まれるのでコードから普通に使用できます。appモジュール最初にAndroidプロジェクトを作った時に残ってるappモジュールは確認用として使うことが出来ます。appモジュールのbuild.gradleで依存関係を設定すれば普通に呼び出せますので。←追加}今回のToastを表示するものを確認するにはappモジュールのActivity等に下のように記述すれば通常のAndroidアプリのように確認できます。UnityPlayer.currentActivityは普通のstatic変数なので普通に設定すれば問題無いです。//...}ライブラリGradleで設定した依存関係はそのままだと反映されません。逆にlibsフォルダに配置したjar等は自動でaarに含まれることになるので、Assets/Plugins/Androidに同じjarがある場合などは除外する設定を追加する必要があります。これについては次回時間があるときにまとめます。ほげほげ(仮)まとめだいぶ面倒な感じ見えますが、一度設定すればそこまで手間ではないと思います。Blog|ブログを報告する。