スタミナバーの追加方法(HPバー以外の追加について)
以下のようにHPバー以外にSP(スタミナ)やMP(マナ)の概念を追加する方法です。
スタミナバーを生成する
TopDownEngineのデフォルトだと
2DCameras -> UICamera -> Canvas ->HUB の中に”HealthBar”があるため、
“HealthBar”をコピーして”StaminaBar”など任意のバーを生成します。
上記のキャプチャでは”StaminaBar”(オレンジ)以外に”SpecialBar”(青)と”ExpBar”(緑)の3つを追加しています。作成するゲームに合わせて必要なゲージを追加しましょう。
GUIManagerを修正する
デフォルトだと”Health Bars”だけの処理ですが、GUIManagerを修正して”StaminaBar”などを追加する必要があります。GUIManagerの修正方法としては
- UpdateHealthBar関数があるのでコピーして、UpdateStaminaBarなど専用の関数を作る。
- 変数でHealthBarになっている部分を新しく作ったStaminabarに変更する。
GUIManagerを修正すると上記のようにGUIManager内のInspectorに”Stamina Bars”が表示されるので、Hierarchyで作成した”StaminaBar”をGUIManager内のInspectorにアタッチしてみましょう。
GUIMangerで追加した関数を呼び出すようにする
新しく作成した”UpdateStaminaBar”を呼び出す新しいスクリプトを作成し、”UpdateStaminaBar”関数を繰り返し呼び出すようにします。以下は一例になります。
- 攻撃が成功するたびに”UpdateStaminaBar”を呼び出す。
- プレイヤーがダッシュするたびに”UpdateStaminaBar”を呼び出す
上記のタイミングで”UpdateStaminaBar”関数を呼び出すようにすれば行動するたびにスタミナを消費する処理が実装できます。
合わせて、スタミナの自動回復なども”UpdateStaminaBar”を呼び出すことで実装することもできます。
最大HPと現在HPを表示する方法
以下のようにHPバーに最大HPや現在HPを表示させます。
最大HPと現在HPのTextオブジェクトを生成する
TopDownEngineのデフォルトだとUI周りのオブジェクトは
2DCameras -> UICamera -> Canvas にあります。
UI周りで表示したいオブジェクトは UICamera配下にあるCanvasに置く必要があるため、
最大HPと現在HPを表示するためのTextもここに配置するようにします。
また、注意としてGUIManagerではnamespaceの関係上、TextMeshProが使えませんでした。
とりあえず、Textで今回は実装してます。
# namespace周りの修正方法が自分ではちょっと分からず…もし知っていたら教えてほしいです。
GUIManagerを修正する
最大HPと現在HPを格納するための変数をGUIManagerに設定する修正と、
Textの表示内容を更新する修正が必要になります。そのため、GUIManagerに以下の修正を行います。
- GUIManagerに格納するTextを新規で作る。
- UpdateHealthBar関数で引数に最大HPと現在HPがあるので、新しく追加した最大HPと現在HPのTextに設定する。
GUIManagerのInspectorに各種バーの最大値と現在値を格納する領域が用意できたので、Hierarchyからアタッチしてみましょう。上記の修正を行うことで最大HPと現在HPが表示されるようになります。
まとめ
今回はHPバー以外に新しくスタミナバーを追加する方法を紹介しました。
キャプチャにもあるように、HP以外にもSPやMPにも同様の処理を実装することで簡単に表示することができます。適宜必要なものを追加していってもらえればと思います。
また今回行った最大/最小の表示については、あくまで表示するだけの処理なので、回復する際に”0.5″など小数点で表示されると見辛い場合もあります。そのときは回復量を調整したり、変数の方を整数型にするなど見やすい形に修正してみてください。
コメント