Unityを使用するスマホの開発 Unityでのスマホ開発:何が異なる? 今まで学んできたUnityの機能は大分に変わらない。物理処理に使う「Rigidbody」、当たり判定に使う「Collider」、サウンド再生に使う「AudioSource」、3Dシーンを見るための「Camera」などはそのまま使える ただし、スマホのゲームを作るには、PCゲームと異なる部分もある: 入力 キーボード、マウス、コントローラーがないため、基本としてタッチの操作でゲームを遊ぶのですが、他の入力も利用できる 加速度センサー:スマホの傾きや動きを取得できる コンパス:スマホの方位を求めることができる 位置情報:GPSにて、緯度経度を求めることができる カメラ:仮想現実(AR)ゲームの開発ができる 画面サイズが様々ながある スマホだけではなく、iPad や Android のタブレットがあるため、様々な画面サイズに対応しなければならない。Canvasのアンカーポイントをうまく利用し、どの画面サイズであってもゲームのUIなどが正しく見えるようにしなければならない。 PCやゲーム機と比べて、計算力が弱い CPUとGPU(グラフィックスボード)は PCと比べて弱いため、計算量を減らす必要がある。重い3Dモデルや複雑な処理にすると、ゲームが重くなったり、端末が熱くなったり、バッテリーが速く消費したりするため、ある程度軽く実行できるように設計しなければならない。 iOSの場合は Androidと比べ、iOS(iPhone か iPad)の開発が大幅に異なる。 ハードウェア 開発端末(スマホ/タブレット)はもちろん必要で、その他に Mac のパソコンが必要です。普段 Mac Mini を使うケースが多い ソフトウェア Unity(Macバージョン)のほかに、Apple専用の開発ソフトウェア「Xcode」(Mac の開発環境)が必要である。(Windows の Visual Studioと同じ) その他必要なもの ハードウェアとソフトウェアを備えても、まだ開発できない。その他に: Appleからの許可:Apple Developer として登録し、電子証明書を受け取る必要がある XCodeで証明書を登録しないと、開発できない 年間 $100 ドルにする(アプリを公開したい場合) 端末の登録 開発用の端末を登録し、別の電子証明書が必要 XCodeで登録し、その端末だけなら開発ができる。 Androidスマホの設定、Unityとの接続 まず、開発用のスマホを「開発者モード」にしなければならない。Android端末の「設定」を開き、「ビルド番号」を探す(以下の流れは端末メーカにより多少にことなる場合がある - 参照画像:Google Pixel 7) 「ビルド番号」を 7回タップ すると、開発者モードになる確認メッセージが表示される。 これで、開発できるようになった。なお、Unityとの接続できるため、USBデバッグを有効化しなければならない。同じ設定画面で: を選択すると、Unityの開発で使えるようになる。なお、 普通のスマホ操作に戻したいなら 「開発者向けオプションを使用」 を無効化してください。 Unityとの接続、実機で実行確認 設定のあとに、USBケーブルでPCと接続してください。スマホで以下のような画面が現れる: 許可してください(チェックボックスを入れなくても大丈夫)。 次、Unityのプロジェクト設定の編集が必要。普通「Windows」の開発になっているが、「Android」に切り替えないといけないので、Unity の「Build Profiles」を開き、プロジェクトのプラットホームを変えてください: そして、Unityで作ったゲームをスマホで実行するには、Build Profiles でUSBで接続した端末を選び、「Build And Run」を押す。ゲームをビルドされ、端末に転送される。その後、実機で確認できる! その他便利な設定 画面も向きを指定 スマホ開発では画面の向きを固定したい場合もあるので、「プロジェクト設定」で指定できる。 ここで選択できるのは: Portrait:縦 Portrait Upside Down:縦(さかさま) Landscape Right:横→右 Landscape Left:横→左 Auto Rotation:自動回転 Unityでスマホの画面を真似する 同じゲームは様々な端末でどう見えるのか確かめたいので、Unityは スマホ開発モード(Switch Platformの後)にすると、「Simulator」が現れる。「Simulator」でいろんな画面の向きとサイズを切り替えることができ、見え方をすぐ確認できる: Simulator の中で、たくさんの端末を選ぶことができるので、必要だったら、UIを調整し、どの端末でも正確に見えるようにする: