############################################# Unity3D開発のスタートラインへ至る遠き道のり ############################################# :small:`created at 2019-10-15 17:00+0900` * スマホ・タブレット用ゲームアプリを作成したい。 * Unityを使えば、一つのソースからいろんなプラットフォーム用アプリをビルドできるらしい。(さしあたり欲しいのはAndroidとiOSとWebGLくらい) * せっかくなのでGoogle AdMobも付けたい。 * Unity3D開発と言ってもエンタープライズじゃないよ。個人レベルだよ。 ************************************** Unity3D開発に必要なもの ************************************** 世の中には「AssetStoreのアセットを組み合わせただけで作れた」とか「1週間で作った」とかキャッチーなことをおっしゃる天才さまもいらっしゃるけれど、 おいら凡人だからUnityだけじゃ作れない。 3Dモデリングソフト ================================= * Blender 2.80 * https://www.blender.org/ * 3Dゲームを作る場合3D部品が必要になるので、それを作るために使う。 * 2.80系とそれ以前のバージョンではUIやら操作方法がかなり違う。 * Unityへインポートできる形式で出力できるならBlenderでなくてもよい。 ペイントソフト ================================= * Gimp * https://www.gimp.org/ * 3Dモデルのテクスチャを作るのに使う。 * ゲーム上のUI部品、GooglePlayStoreやAppStoreで公開するときのアイコン等を作成するのに使う。 * png形式で出力できればGimpでなくてもよい。 アプリ本体の作成 ================================= * Unity 2019.2.9f1 * VisualStudio * C#スクリプトもりもり書くことになる。 広告入れたい ================================= * Google AdMob * GoogleMobileAds-v4.0.0.unitypackage * https://github.com/googleads/googleads-mobile-plugins/releases/latest * 広告プロバイダは他にもいろいろあるらしい Androidアプリのビルド ================================= * Java * OpenJDK * Android SDKとNDK * GooglePlayStoreで公開するためには、32ビット版・64ビット版全部入りAndroidAppBundle (aab)形式でビルドしなければならない。 * UnityHub経由でインストールしないと、うまく働かないようだ。 * UnityのバージョンとAndroid SDKのバージョンには対応する組み合わせがあるらしく、すでにインストール済みのAndroid SDKとNDKのパスを設定しても'Android SDK not found'とか言い出す。 * bundletool * https://github.com/google/bundletool * aabファイルからapksファイルを生成したり、apksファイルを実機へインストールしたりするために用いる。 * HomeBrewでインストールしとく。 iOSアプリのビルド ================================= * XCode * CocoaPods * RubyGemが必要。 * MacOSのバンドル版Rubyはバージョンが古いので、HomeBrewでなるべく最新版をインストールした方がよいかも。 * GoogleAdMobを使わないなら要らない。 ************************************** トラブルシューティング ************************************** Unity Hub経由でAndroid SDK入れたのに、ライセンスがどうこう言われる ======================================================================== * ターミナルを開いてコマンドラインからライセンスに同意する。 .. code-block:: bash # /PlaybackEngines/AndroidPlayer/SDK/tools/bin cd /Applications/Unity/Hub/Editor/2019.2.9f1/PlaybackEngines/AndroidPlayer/SDK/tools/bin ./sdkmanager --licenses Unityに追加したGoogleMobileAdsパッケージからCocoaPodsをインストールしたのにpodコマンドがないとか言われる ========================================================================================================== * 「アセット」メニュー→"Play Service Resolver"→"iOS Resolver"→"Settings" * "Use Shell to Execute CocoaPods tool" のチェックボックスをonにする。 * 環境変数PATHにRubyやらgemやらのパスを設定する。(gemのディレクトリはrubyバージョンに依る) .. code-block:: bash # .profile export PATH="/usr/local/opt/ruby/bin:$PATH" export PATH="$HOME/.gem/ruby/2.6.0/bin:$PATH" * 再度"Install Cocoapods"を実行する。 * 「アセット」メニュー→"Play Service Resolver"→"iOS Resolver"→"Install Cocoapods" * インストールに成功しpodコマンドが見えるようになっていると"detect cocoapod path...."とか言われる(うろ覚え)。 CocoaPodsをインストールした後iOS用ビルドに時間がかかる ======================================================================== * CocoaPodsのレポジトリ初期化に時間がかかっているらしい。 * コマンドラインから以下を実行し、1時間くらい待つ .. code-block:: bash pod repo update Android App Bundle (aab) をアップロードしろとGooglePlayStoreに言われた ======================================================================== * 「ビルド設定...」→「Android」→「App Bundle をビルド」のチェックをOnにする。 Android App Bundle (aab) には32ビット版と64ビット版の両方を含めろとGooglePlayStoreに言われた ================================================================================================= * Android SDK, NDKがインストール済みであること * 公開設定でキーストア、エイリアス、パスワードが設定済みであること * 「ビルド設定...」→「プレイヤー設定」→「Androidタブ」→「その他の設定」→「設定」 * スクリプティングバッグエンド * IL2CPP を選択 * ターゲットアーキテクチャ * ARMv7 → Onにする * ARM64 → Onにする Android App Bundle (aab) で実機テストどうするん? ================================================================================================= * HomeBrew で bundletoolをインストールし、次のようにコマンド実行する。 * --overwrite で同名apksファイルを上書き * --bundle=<元になるaabファイル名> * --output=<出力するapksファイル名> * --ks=<キーストアへのファイルパス> * --ks-pass=file:<キーストアのパスワードを記述したファイル(自分でテキトーに作る)へのパス> * --ks-key-alias=<キーのエイリアス> * --key-pass=file:<指定したエイリアスのパスワードを記述したファイル(自分でテキトーに作る)へのパス> .. code-block:: bash # Android app bundle から apks を生成する。 bundletool build-apks \ --overwrite \ --bundle=AppName.aab \ --output=AppName.apks \ --ks=$HOME/Path/To/Unity_Keystore/user.keystore \ --ks-pass=file:$HOME/Path/To/Unity_Keystore/secret.keystore.txt \ --ks-key-alias=AliasOfApp \ --key-pass=file:$HOME/Path/To/Unity_Keystore/secret.key.txt # apks を実機へインストール bundletool install-apks --apks=AppName.apks