はじめに
前回は、敵のデータを作成しました。
今回は、戦闘システムの設計を解説します。
どのような仕組みで動かすのか、実際にシステムを作る前に紹介します。
戦闘システム全体の流れ
以下のような手順で戦闘が行われます
①戦闘の呼び出し
SceneManager.csに戦闘を呼び出す関数を追加。プレイヤーが一歩移動するごとにランダムで戦闘に入る。
②UIのセットアップ
戦闘に必要なUIを表示する。
具体的には、
・敵味方の立ち絵
・味方のステータスを表示するUI
・メッセージウィンドウ
が表示される。
③味方の行動選択
専用のメニューを表示し、「こうげき」「まほう」などの選択肢を出す。
十字キー操作で行動を選択する。
選択が完了したら、次の処理に進む。
④行動順の決定
敵味方全体のうち、素早さが早いキャラを先頭に行動順を組み立てる。
⑤行動の実行
決めた順に行動を行う。
行動に合わせ、各キャラのパラメータを増減させる。
⑥戦闘終了の判断
敵全体、もしくは味方のHPが0になった場合、戦闘を終了させる。
勝利時には、お金や経験値の獲得処理がなされる。
必要なもの
戦闘システムを作るために、以下のものを用意します。
スクリプト
・BattleManager.cs
戦闘全般を管理する。
・MagicPageArrow.cs
使用する魔法を決定するメニューにおいて、ページを切り替える処理を行うために必要なスクリプト。
UI
・PlayerStatusPanel
プレイヤーのステータス(HP等)を表示するためのUI。画面上部に設置する。
・EnemiesContainer
敵オブジェクトを並べるためのUI。画面中央に設置する。
・AlliesContainer
味方オブジェクトを並べるためのUI。画面中央に設置する。
・MessageWindow
各種メッセージを表示するためのUI。表示する内容はBattleManager.csによって管理される。
・ActionMenuPanel
味方の行動を決定するためのUI。「こうげき」「まほう」「アイテム」「にげる」の4つの選択肢がある。
・MagicMenuPanel
使用する魔法を決定するためのUI。
・ItemMenuPanel
使用するアイテムを決定するためのUI。
・TargetMenuPanel
攻撃の対象となるキャラを決めるためのUI。
プレハブ
・PlayerStatusEntry
プレイヤーのステータスを表示するためのプレハブ。
・allyPortraitPrefab
味方の立ち絵を表示するためのプレハブ。
・enemyPortraitPrefab
敵の立ち絵を表示するためのプレハブ。
・magicArrow
魔法メニューでページを切り替えるためのプレハブ。
・MenuOption
行動選択メニューなどにおいて、メニューの項目となるプレハブ。
おわり
今回は、戦闘システムの設計について紹介しました。
次回からは、実際に戦闘システムを作っていきます。