UnityでのAndroidアプリ開発メモ
(AdMob広告表示対応)
Unity上での設定
Android対応
- Unity Hubにて、Android Build Support用のモジュールをインストールしておく。Android SDK & NDK Tools と OpenJDK
- Unityエディタにて、File > Build Settings からプラットフォームをAndroidに切り替える。
- File > Build Settings > Project Settings > Player Settings... から最低限Playerの Company Name と Product Name を設定しておく。以下は一例
- 同じくPlayerの設定で64Bit対応を行う。
Other Settings > Configration の Scripting BackEnd を IL2CPP に設定する。
Target Architectures の ARM64 にチェックを追加する。Androidアプリの64Bit対応は必須となっている。
参考)
Android Developers - Google Play - 64 ビット アーキテクチャのサポート - 以上の設定で、 File > Build Settings > Build を実行すればAndroid向けのAPKファイル(.apk)が生成されます。
- 必須ではありませんが、モバイル向けの開発にはUnity上でモバイル端末をシミュレートしてくれる「Device Simulator」が便利です。Window > Package Manager から追加できます。
Google Admob 広告対応
- スタジオしまづさんの解説が動画もあってわかりやすいです。Admobアカウントの作成から~Unityでの実装まで丁寧に解説されています。
【Unity 収益化】Admobのバナー広告の実装(Android) - Unityゲーム開発スタジオ スタジオしまづ - 残念ながら前述の「Device Simulator」ではGoogle Mobile Adsのテスト広告の表示はできないようです。
Android Studio上での設定
- UnityでビルドしたAndroid向けのAPKファイルを、本家のAndroid Studioにて実行・確認することができます。
- 「Profile or Debug APK」よりAPKファイルを選択し、エディタ上で実行すると以下のようなエミュレータ上にてアプリの動作が確認できます。
- エミュレートするモバイル端末はAVD (Android Virtual Device) Managerから追加インストールできます。
- Android Studioのエミュレータ上ではGoogle Mobile Adsのテスト広告も表示されるので、実機無しで広告の表示位置などを確認するのに便利です。
UnityとAndroid Studioのx86絡み問題
Unity
- Unity 2019.3以降、x86 ベースの Android サポートは廃止されています。
参考)
Android サポートに関するお知らせ:64 ビット対応および App Bundle サポートの 2017.4 LTS バックポート | Unity Blog
-----------------------------------------------------------x86 ベースの Android サポートについて
Unity では、Android の ARM 64 ビットサポートを追加した一方で、x86 ベースの Android の使用状況の調査も行いました。その結果、x86 ベース Android デバイスの市場への供給は非常に限られたものであり、Unity の x86 ベース Android サポートの導入も非常に狭い範囲に留まったことが分かりました。このため、x86 ベースの Android サポートはバージョン 2019.2 をもって廃止となり、Unity 2019.3 をもって完全に削除されます。Unity 2018 の各バージョンと、2018.4 LTS における x86 ベース Android のサポートは、当該バージョンのライフサイクルが終了するまで維持されます。
-----------------------------------------------------------
Android Studio
- 使用できるエミュレータのうち、高速エミュレータは x86 だけで、x86 以外の arm86-xx などはパフォーマンスが非常に悪い(エミュレータがとても重い)参考)
Android SDK の高速エミュレータ、使ってますか? | OPTPiX Labs Blog
つまり、Android Studio上では x86 のシステムイメージの高速エミュレータを使用したいが、Unityが生成するAPKは x86アーキテクチャの対応は廃止しているので高速エミュレータが使えないジレンマ。かといってUnityの旧バージョンで x86アーキテクチャ出力するのでは何をしているのか本末転倒という・・・。
- Unityの「Device Simulator」の進化に期待する。まだプレビューだし。
- Android Studioの x86 以外のエミュレータ高速化に期待する。いや性質からいっても期待薄。
そんなところです。