Menu
CoddyTech

HUD 界面

本课属于 Coddy Unity 学习旅程的“Unity 游戏架构”单元。第 58 课,共 64 课。

challenge icon

挑战

中等

构建一个只负责监听的 HUD。

  1. Hero 添加 public event Action<int, int> HealthChanged,并在 Start 中以及每次状态变化时,用 (health, maxHealth) 触发事件。
  2. WaveSpawner 添加 public event Action<int> WaveStarted,并在每一波开始时用 Wave 触发事件。
  3. 在 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 在线编辑器