HUD
CoddyのUnityジャーニー「Unityのゲームアーキテクチャ」セクションの一部。レッスン 58/64。
チャレンジ
中級イベントを監視するだけのHUDを作成しましょう。
Heroにpublic event Action<int, int> HealthChangedを追加し、Start内と値が変わるたびに(health, maxHealth)を渡してイベントを発生させます。WaveSpawnerにpublic event Action<int> WaveStartedを追加し、各ウェーブの開始時にWaveを渡してイベントを発生させます。HUDではOnEnableで購読し、OnDisableで購読を解除します。healthBarを更新し、HP 3/5とWave 2を表示します。Updateは使いません。
「プレイ」を押して戦いましょう。HUDが状況に合わせて更新されます。その後、「確認」を押します。
自分で試してみよう
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class HUD : MonoBehaviour
{
[SerializeField] private Hero hero;
[SerializeField] private WaveSpawner spawner;
[SerializeField] private Image healthBar;
[SerializeField] private TMP_Text healthText;
[SerializeField] private TMP_Text waveText;
// 後のレッスンでここを実装します:画面に体力とウェーブを表示します。
}
Unityのゲームアーキテクチャのすべてのレッスン
自分で練習してみよう: Unityプレイグラウンド