設計っぽいこと
設計というほどのことではありませんがどんな感じで作っていくかを考えておきます。
(作っている途中でころころと変わっていくと思います)
前提としてUnityの入門書を1冊やったという人でも理解しながら作っていけるような内容にしたいと思っています。
シーンについて
シーンは3つ作成します。
- タイトルシーン(Title)
- ダンジョンシーン(Dungeon)
- バトルシーン(Battle)
ゲーム全体の管理
シーンが切り替わっても破棄されないGameManagerオブジェクト(GameManagerスクリプト)作成します。
GameManagerはプレイデータのセーブ・ロード、マスターデータの参照、シーンの切り替えなどを行います。
サウンドの再生について
シーンが切り替わっても破棄されないSoundManagerオブジェクト(SoundManagerスクリプト)を作成します。
サウンド素材をアウトレット接続しておき、素材ごとに再生するメソッドを作っておきます。
BGMはPlayメソッドで再生します。
SE(効果音)はPlayOneShotメソッドで再生します。
命名規則について
プライベート変数、ローカル変数、引数はローワーキャメル式で記述します。
パブリック変数、メソッドはアッパーキャメル式で記述します。
以下は実装予定ですが、
プロパティはメソッドと同じくアッパーキャメル式で記述
コンストラクタの引数はアンダースコアを付けたローワーキャメル式で記述
データのセーブ・ロードについて
JsonUtilityクラスを使ってクラスを文字列化します(Json化)。
Json化した文字列をPlayerPrefsクラスを使ってデバイスに保存したり、読み込んだりします。
コマンドについて
バトルのときの「攻撃」や「回復」などのコマンドは個別に処理を作るのではなく、スキルとして扱いスキルを監督するスクリプトを使って処理するようにします。
敵キャラの攻撃やダンジョン中での回復などもスキルとして扱います。
使う素材
画像やサウンドの素材は事前に用意しておいてもいいですし、そのつど用意してもいいと思います。
とりあえず必要になりそうな素材を書いておきます。
画像
- ボタン
- ウィンドウ
- テクスチャ(壁・入り口)
- 敵キャラ(3種類)
- エフェクト(攻撃)
サウンド
- タイトルBGM
- ダンジョンBGM
- バトルBGM
- ゲームオーバーBGM
- タッチSE
- 移動SE
- 主人公の攻撃SE
- 敵キャラの攻撃SE
- 防御SE
- 回復SE
- レベルアップSE