0. 개요
프로젝트 기본 에셋으로 주어진 구형(Globe) 체력 머티리얼을 사용해 부모 위젯 블루프린트를 만든 후 체력과 마나 글로브가 해당 부모 위젯 블루프린트를 상속받아, 이미지, 패딩, 백그라운드 이미지를 오버라이드하여 바꿀 수 있게 되었다(포스트 생략).
이제 해당 위젯들을 화면 상에 띄우고 GAS의 속성 세트 값을 반영하도록 설정한다.
1. HUD
(1) 코드
HUD를 상속받는 C++ 클래스를 생성한다.
#include "CoreMinimal.h"
#include "GameFramework/HUD.h"
#include "AuraHUD.generated.h"
class UAuraUserWidget;
UCLASS()
class AURA_API AAuraHUD : public AHUD
{
GENERATED_BODY()
protected:
virtual void BeginPlay() override;
public:
UPROPERTY()
TObjectPtr<UAuraUserWidget> OverlayWidget;
private:
UPROPERTY(EditAnywhere)
TSubclassOf<UAuraUserWidget> OverlayWidgetClass;
};
오버레이 위젯을 화면 상에 띄울 예정이므로 오버레이 위젯과 블루프린트에서 할당할 오버레이 위젯 클래스를 설정한다.
#include "UI/HUD/AuraHUD.h"
#include "UI/Widget/AuraUserWidget.h"
void AAuraHUD::BeginPlay()
{
Super::BeginPlay();
UUserWidget* Widget = CreateWidget<UUserWidget>(GetWorld(), OverlayWidgetClass);
Widget->AddToViewport();
}
CreateWidget 템플릿 함수를 사용하여 위젯을 만들고 뷰포트에 추가한다.
(2) HUD 블루프린트 생성
AuraHUD를 상속받는 블루 프린트 BP_AuraHUD를 생성하고 이전에 TSubClassOf로 지정했던 Overlay Widget Class를 이전에 생성했던 오버레이 블루프린트로 지정한다.
(3) 게임모드에서 적용
이전에 생성했던 BP_AuraGameMode 내의 기본 설정에서 HUD를 BP_AuraHUD로 지정한다.
이제 게임을 실행하면 HUD가 정상적으로 나타나는 것을 볼 수 있다.
'UE 5 스터디 > Gameplay Ability System(GAS)' 카테고리의 다른 글
3-5. 위젯 컨트롤러를 이용하여 위젯 초기화하기 (0) | 2024.08.22 |
---|---|
3-4. 오버레이 위젯 컨트롤러(Overlay Widget Controller) (0) | 2024.08.22 |
3-2. 유저 위젯(User Widget)과 위젯 컨트롤러(Widget Controller) (0) | 2024.08.21 |
3-1. RPG 게임 기본 UI 구조 (0) | 2024.08.21 |
2-9. 이펙트 액터(Effect Actor) (0) | 2024.08.20 |