UnityでAndroidアプリを開発することにしました。ジャンルは自分が好きなものにしようと思い、TD(タワーディフェンス)にしました。
そういえば昔FF7のミニゲームでありましたね。神羅兵を撃退するゲームが。楽しかったなぁ。。(あれがタワーディフェンスなのかはわかりませんが)
ちなみに、ゲームエンジンの検討段階では、
- Unity
- Unreal Engine
- Cocos2d-x
などで迷っていたのですが、結局以下の理由で「Unity」にすることにしました。
- 環境構築のしやすさ
- 学習のしやすさ(ネット上の情報量)
- C#でロジックが書ける(ちょっとだけ触ったことがある)
Contents
Unityセットアップ(Android上で動作確認できるところまで)
まず、以下のブログを参考に「Unity Hub」をインストールして、最新正式リリース版である「Unity 2019.2.18f1」をインストールしました。
Unityのユーザ登録を済ませた後、とりあえず、携帯で動作確認できるところまでやってみることにしました。そこで私がいくつかハマった点を記載します。
はじめに、
Unity Hub起動>新規作成>3D>作成
を押下して、「3DTest」という名前のプロジェクトを作成します。
以下のような画面が開きました。
その後、メニューから
ファイル>ビルド設定
を選択します。
プラットフォームが「PC, Mac & Linux Standalone」になっているので、「Android」を選択して、「Switch Platform」を押下します。
はまりポイント1:Android NDK not found
Switch Platformが表示されていた箇所が、ビルドに変わったので、ビルドボタンを押下すると、
そのビルド中に、エラーメッセージが表示されました。
どうやら、Android NDKというものをインストールする必要があるらしいです。設定でインストールパスを紐づけたりしなければならないなど、面倒なことが書いてありましたが、最近のUnityでは、まとめてインストールができるようになったようです。
Unity Hub起動>インストール> バージョンのパネルを右クリック>モジュールを加える
Platformsの Android Build Support を展開した中の、Android SDK & NDKにチェックをいれて「次へ」
でインストール。これでリンク設定までやってくれたみたいです。
はまりポイント2:Package Name has not been set up correctly
再度ビルドボタンを押下したところ、別のエラーが表示されました。
なにやら、パッケージ名が正しくない様子。’com.YourCompanyName.YourProductName'に合わせればいいのかと思い、以下のように変更するも同じでした。
先ほどのエラーをよく見てみると、先頭は数字やアンダーバーは駄目という記載がありました。どうやらこっちが原因だったようです。以下のように変更してビルドがとおるようになりました。しっかりメッセージは読みましょう。。
はまりポイント3:デバイスを実行します で持っている携帯が選択できない①
ビルドは通るようになったのですが、肝心の携帯で実行することができていません。
いろいろ調べてみると、携帯の「開発者モード」というものを使うとデバッグができるようになるとのこと。試してみました。
私の携帯はSonyのXperia XZ(2016年発売!)ですが、以下の手順で表示されるようになりました。
通常は隠しメニューになっているようです。
設定>端末情報>ビルド番号 を連続タップ
なんか「大技林」みたいでわくわくしますね。(若い人はしらない!?)
設定>端末者向けオプション
が選べるようになりました。
ONにして、USBデバッグ を有効にして、PCと携帯をUBS接続すると、
Unityの「デバイスを実行します」で端末を選択できるようになるはずでした。
はまりポイント4:デバイスを実行します で持っている携帯が選択できない②
Refreshを押しても、接続している携帯が選べるようになりません。
どうやら携帯がPCから認識されていないようです。
原因は、充電専用のケーブルが接続されていたため、でした。その辺に置いてあったケーブルを適当に刺したのがまずかったです。(初歩的な問題でした)
そのうえで、携帯とPCを接続した際に携帯側に表示された「USB接続の用途」で「ファイルを転送する」を選択しておく必要がありました。
これでやっと、選択できるようになりました。
ビルドして実行すると、無事、携帯側に実行結果が表示されました。めでたしめでたし。
携帯で実行できるようになったので、環境構築はできたことにして、次はTD(タワーディフェンス)の仕様を決めたいと思います。