본문 바로가기

게임프로그래밍/실습2

[실습2] 17. HUD 만들기

1. HUD 클래스 생성

 

HUD 클래스를 만들어 위젯을 등록해보도록 하자.

 

 

C++ 클래스를 먼저 생성하자.

 

위젯을 HUD에 그리기 위해서는 인스턴스를 저장할 변수와 이 인스턴스의 타입을 정할 클래스가 필요할 것이다.

 

class PRACTICE2_API AAuraHUD : public AHUD
{
    GENERATED_BODY()

public:
    UPROPERTY()
    TObjectKey<UAuraUserWidget> OverlayWidget;

private:
    UPROPERTY(EditAnywhere)
    TSubclassOf<UAuraUserWidget> OverlayWidgetClass;
    
};

 

이제 제대로 만들어졌는지 테스트를 해보자. 단순히 비긴 플레이 함수에서 위젯을 보여주는 작업을 할 것이다.

 

void AAuraHUD::BeginPlay()
{
    Super::BeginPlay();

    UUserWidget* Widget = CreateWidget<UUserWidget>(GetWorld(), OverlayWidgetClass);
    Widget->AddToViewport();
}

 

이제 이를 기반으로 블루프린트 클래스를 만들고 화면에 제대로 나오는지 확인을 해보자.

 

 

게임모드에서 HUD를 설정해주면 된다.

 

 

위젯이 정상적으로 나온다.

 

다음에는 컨트롤러를 이용해서 이 위젯의 값들 실제로 지정하는 방법을 알아보자