7歩目 UIを使ってキャラデータを表示 Unityで1日1ステップ!ノンフィールドRPG開発日記

1日1歩開発日記

ふりかえり

昨日は、敵キャラクターのデータを作成しました!

7歩目 UIを使ってキャラデータを表示

今日は、UIを使ってプレイヤーと敵のステータスをゲーム画面に表示していきます。

前回までに PlayerData と EnemyData を作成し、それぞれ Debug.Log を使ってConsole上に出力できるようになりました。

しかし、ゲーム画面上にはまだ何も表示されていません。今回は、それを実際に見える形にしていきます!

1. TextUIの作成

まず、ステータスを表示するための Text(TextMeshPro)UI を用意します。

  1. Hierarchyビューの「+」をクリック
  2. UI > Text – TextMeshPro」を選択
  3. 作成されたTextオブジェクトの位置・サイズを調整します

表示内容の一例:

  • PlayerNameText
  • PlayerHPText
  • PlayerLevelText (フォントは第2歩目で設定した日本語フォントを使い、サイズや色も調整してください)

同様に、Enemyの名前・HP・レベル用のTextも用意します。

2. ステータスをTextに反映するスクリプトの作成

プレイヤーのUI更新スクリプト:PlayerUIManager

using UnityEngine;
using TMPro;

public class PlayerUIManager : MonoBehaviour
{
    public PlayerManager playerManager;
    public TextMeshProUGUI nameText;
    public TextMeshProUGUI hpText;
    public TextMeshProUGUI levelText;

    void Update()
    {
        UpdateUI();
    }

    void UpdateUI()
    {
        nameText.text = playerManager.player.name;
        hpText.text = "HP: " + playerManager.player.currentHP + "/" + playerManager.player.maxHP;
        levelText.text = "Lv: " + playerManager.player.level;
    }
}
  1. 空のゲームオブジェクトを作成(名前:PlayerUIManager)
  2. PlayerUIManager.cs をアタッチ
  3. Inspector上で、以下の項目を設定:
    • PlayerManager:スクリプトではなく、PlayerManagerをアタッチしたゲームオブジェクト
    • 各 TextMeshProUGUI:対応するUIテキスト

注意:PlayerManagerにはスクリプトファイルではなく、オブジェクトをドラッグ&ドロップしてください。


敵のUI更新スクリプト:EnemyUIManager

using UnityEngine;
using TMPro;

public class EnemyUIManager : MonoBehaviour
{
    public EnemyManager enemyManager;
    public TextMeshProUGUI nameText;
    public TextMeshProUGUI hpText;
    public TextMeshProUGUI levelText;

    void Update()
    {
        UpdateUI();
    }

    void UpdateUI()
    {
        nameText.text = enemyManager.enemy.name;
        hpText.text = "HP: " + enemyManager.enemy.currentHP + "/" + enemyManager.enemy.maxHP;
        levelText.text = "Lv: " + enemyManager.enemy.level;
    }
}
  1. 同様に空のゲームオブジェクトを作成(名前:EnemyUIManager)
  2. EnemyUIManager.cs をアタッチ
  3. Inspectorで EnemyManager と各Textを設定します

3. ゲーム画面での確認

すべての設定が完了したら、ゲームを再生してみましょう。

ゲーム画面に以下のようなステータスが表示されていれば成功です:

  • プレイヤー名、HP、レベル
  • 敵の名前、HP、レベル

まとめ

今回は、キャラクターのステータスをゲーム画面上に表示させる仕組みを実装しました!

実際にUIにステータスが出ることで、一気にゲームらしさが増してきましたね

次回は、いよいよプレイヤーの攻撃機能を実装していきます。

バトルシステムの第一歩です!お楽しみに!

コメント

タイトルとURLをコピーしました