見出し画像

【Unity】3Dローグライクゲームの作り方〜Step11-2〜

前回の記事はこちら
前回は体力ゲージなどの表示を行いました。

ステータスの表示

ステータスウィンドウを別に作成して表示するというのも確かに手なのですが、今回は表示する項目が少ないので、ゲージの下に簡易表示することで対応しようと思います。
まずMessageWindowが含まれている方のCanvasの階層下にテキストを追加し、名前を「ParameterText」にします。
そしてそれをゲージの下あたりに配置して下さい。

スクリーンショット 2020-06-18 11.16.15

場合によって、Outlineコンポーネントをアタッチするなどしましょう。
調節が終わったら、テキストの欄は空にしておいて下さい。
コードを書いていきます。新しく「OutputParameter」という名前でスクリプトを作成して下さい。そこに以下のように記述しましょう。

using UnityEngine;
using UnityEngine.UI;

public class OutputParameter : MonoBehaviour
{
   public ActorParamsController param;
   public Text text;
   private int prevStr;
   private int prevDef;
   private int prevEquipAtk;
   private int prevEquipDef;

   // Update is called once per frame
   void Update()
   {
       int str = param.parameter.str;
       int def = param.parameter.def;
       int equipAtk = param.equipment.GetAllAtk();
       int equipDef = param.equipment.GetAllDef();
       if (!(prevStr == str && prevDef == def && prevEquipAtk == equipAtk && prevEquipDef == equipDef))
       {
           text.text = "Atk:" + str + "(+" + equipAtk + ") Def:" + def + "(+" + equipDef + ")";
           prevStr = str;
           prevDef = def;
           prevEquipAtk = equipAtk;
           prevEquipDef = equipDef;
       }
   }
}

更新があったときのみテキストの値を書き換えています。
ビルドしたら、ParameterTextにアタッチしておきましょう。
テストしてみます。以下のように表示されたらOKです。

スクリーンショット 2020-06-18 12.57.01

布の鎧のみを装備した状態

という訳で、短いですが今回はここまでということで。
次回はアイテムの詳細表示を改良したいと思います。

この記事が気に入ったらサポートをしてみませんか?