UnityでAndroid用ゲームを制作する時の新規作成後、最初に設定していく項目を書いていきます。
これは完全に自分用の備忘録ですが、もしかすると私と同じく初心者で右も左も分からない人がいるかもしれないので、とりあえずこれをしてからゲーム作りに取り掛かると良いと思います。
作るゲームの概要
- Android向け
- 一画面で完結(カメラを動かさない)
- 横長の画面
- 縦横比は16:9(解像度は1920 x 1080 を対象)
プラットフォームをAndroidに変更
- 「メニュー」File > Build Settings
- 「Build Settings」[ Platform ]をAndroidに変更 > Switch Platformをクリック
ゲームの操作をスマホの縦方向か横方向に固定する
両方に対応するのが難しいので、ゲームに最適となる画面をどちらかに固定します。ここでは横長で固定。
- 「メニュー」File > Build Settings > Player Settingsをクリック
- 「Player」項目からAndroidアイコンをクリックして[ Resolution and Presentation ]を展開
- [ Allowed Orientations for Auto Rotation ]Portraitとportrait Upside Downのチェックを外す
* 逆にLandscape RightとLandscape Leftを外すと縦長になります。全部チェックが入ると縦長、横長両方に対応。目的に合わせて設定します。
Main Cameraの設定
必要なしだと思います(多分)。後述のCanvasの設定で表示するようにします。
Canvasの設定
このCanvas上でゲームを作ります。他のやり方もあるのかもしれませんが、私が知っているのがこれ、というだけです。
- SceneにCanvasを追加してCanvasを選択
- 「Canvas」[ Render Mode ]をScreen Space – Overlayに設定
- 「Canvas Scaler」[ UI Scale Mode ] を Scale With Screen Sizeに設定
- 「Canvas Scaler」[ Reference Resolution ] を X 1920、 Y 1080に設定
- 「Canvas Scaler」[ Screen Match Mode ] を Match Width Or Heightに設定
- 「Canvas Scaler」[ Match ] を Height(1)に設定
- 「Canvas Scaler」[ Reference Pixels Per Unit ] を 1に設定
新しいCanvasを作るごとに上記の設定をします。
Render Modeについては【Unity】【uGUI】CanvasのRender Modeをちゃんと理解するの記事が非常に分かり易かったです。
その上で、Screen Space には CameraとOverlayがあるわけですが、Overlayを選択した理由はHow Screen Space Overlay Scores Over Screen Space Camera – Mostlyの記事を踏まえた上です。
上の記事をGoogle翻訳を使いながら要約するとCameraにするとカメラが動くたびに1フレームで50回ぐらい呼び出しが行われるそうです。
今回のケースではカメラは動かさないので別にCameraでも良いと思うのですが、念のためOverlayにして不要な呼び出しが行われる可能性を排除しています。
Game Managerの作成
Game Managerについては、あちこちで説明されているのでそれを読んでください。ここでは最低限の形を作ります。
- Unity Editorの「Project」タブ内で右クリック > Create > C# Script
- 名前を「GameManager」にする(アイコンがギアのマークになって分かり易くなります)
-
作成した「GameManager」を開いて以下のように編集する
using System.Collections; using System.Collections.Generic; using UnityEngine; public class GameManager : MonoBehaviour { public static GameManager instance = null; // 追加するのはこのAwake()です private void Awake() { if (instance == null) { instance = this; DontDestroyOnLoad(this.gameObject); } else { Destroy(this.gameObject); } } // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { } }
- Unity Editorの「Hierarchy」タブ内で右クリック > Create Empty
- 名前を「GameManager」にして先程作った「GameManager」スクリプトをドラッグドロップして追加
GameManagerオブジェクト(Create Emptyで作成した空のGame Object)は一番最初に表示するSceneで作ります。
ここまでで、ゲームが作成できる準備は整っているはずなので、後はCanvasに色んなものを追加したりして思い描いたゲームを作成できると思います。
私も勉強し始めなので不正確だったり、必要だったり、不要だったり、といったものがあるかもしれません。コメント欄で教えてもらったり、後に自分で気づいたものは随時更新していきます。
コメントを残す