Menu
CoddyTech

HUD

Coddy Unity 여정의 Unity 게임 아키텍처 섹션에 포함된 레슨. 50개 중 46번째.

challenge icon

챌린지

중급

수신만 하는 HUD. 이전 레슨의 모든 내용을 그대로 유지하세요. HUD라는 이름의 캔버스에는 체력 바(HealthFill, Filled 이미지), HealthText와 WaveText가 있고, hero, spawner, healthBar, healthText, waveText가 Inspector에서 설정된 HUD 스크립트가 있습니다. HUD는 영웅이나 스포너에게 아무것도 묻지 않습니다. 이들은 C# 이벤트로 변경 사항을 알리고, HUD는 전달받은 내용을 표시합니다.

  • Hero에 public event Action<int, int> HealthChanged를 추가하고, Start에서 체력과 maxHealth를 전달해 이벤트를 발생시키며, 피격이나 회복으로 체력이 바뀔 때마다 이벤트를 발생시킵니다.
  • WaveSpawner에 public event Action<int> WaveStarted를 추가하고, 웨이브가 시작될 때 웨이브 번호를 전달해 이벤트를 발생시킵니다.
  • HUD는 OnEnable에서 두 이벤트를 모두 구독하고 OnDisable에서 구독을 해제합니다. HealthChanged가 발생하면 남은 체력의 비율만큼 바를 채우고 체력을 HP 3/5 형식으로 표시합니다. WaveStarted가 발생하면 Wave 2를 표시합니다. Update는 없습니다.

HealthChanged는 Awake가 아니라 Start에서 발생시키세요. 모든 객체의 OnEnable은 어떤 객체의 Start보다 먼저 실행되므로, 그때쯤이면 HUD가 이벤트를 구독하고 있습니다. Play를 눌러 싸우는 동안 HUD를 확인한 다음 Check를 누르세요.

직접 해보기

using UnityEngine;

public class HUD : MonoBehaviour
{
    // 이후 강의에서 이 부분을 완성합니다: 화면에 체력과 웨이브를 표시합니다.
}

Unity 게임 아키텍처의 모든 레슨