見下ろし型アクションゲーム制作テンプレート「TopDownEngine」の基本の使い方。
実際にゲームを作りながら把握した、導入~基本的な使い方。
導入
UnityHub -> 新規作成 -> テンプレート -> 3D
として作成したプロジェクトに、TopDownEngineをインポート。
導入時に、TileMap等の2D用のパッケージもインポートされる模様。
ProjectSettingsが変更されるので、出来るだけ新規プロジェクトへのインポートを推奨。
エディタの2D/3Dモードは、3Dモードのまま変更されない。
3Dモード時の仕様は以下から。
概要
コンポーネント指向
機能をパーツ毎に分けて、必要に応じてアタッチしている。
エディタのインスペクターから細部まで設定出来る。
パーツの基本クラスの初期化時に、GetComponentInParent等で、同一オブジェクトにアタッチされた他コンポーネントの参照を取得しまくっている。
シングルトン(○○Manager系)
ちゃんとしたシングルトン。
何故かInputManagerだけ、基本クラスの初期化時にFindObjectsOfTypeで変数に参照を保存している。
(「InputManager.Instance」でも取得可能)。
基本的な使い方
デモゲームをテンプレートとする
デモゲームをテンプレートとして、各種リソースや、プレハブを差し替えて行く。
(音声ファイルは転用禁止なので注意)。
要素の追加時は、基本クラスを継承
要素を追加する時は、同種スクリプトの基本クラスを継承。
同種スクリプトを参考に、ルールを踏まえつつ、クラスを構成。
基本クラスの初期化時に、主な関連クラスの参照は取得されている
派生クラスの場合、基本クラスの初期化タイミングで、主要な関連クラスへの参照を保持している。
(CharacterAbilityならばCharacterへの参照等)。
基本クラスの変数だけでも、ざっと目を通しておいた方が良い。
○○Manager系は、シングルトンなので「GameManager.Instance」として何時でも使用出来る。
○○Manager系の初期化タイミングで、他○○Manager系を呼び出す場合は、スクリプトの実行順序に注意しなければいけない。
Android向けにビルドする時の注意点
初期設定のままビルドしようとしてもエラーが出る。
「Minimum API Level」が高いので注意
デフォルト設定では、Minimum API Levelが「API Level 29」と高めに設定されている。
使用するスマホが古い物だと、「パッケージの解析中に問題が発生しました。」と出てapkファイルからインストール出来ない。
解決法
上部メニュー -> Project Settings -> Player -> Other Settings -> Identificationの項のMinimum API Levelを適度に下げておく。
「Keystore」(電子署名)の設定に注意
Keystoreにパスワードを入力せずにビルドすると「Can not sign the application」が出てビルド不可能。
解決法
- 上部メニュー -> Edit -> Project Settings…でProject Settingsを開く。
- Player -> Publishing Settings -> Custom Keystoreを無効化する。