헤드업디스플레이의 구현
Unreal 이론2024. 11. 14. 18:19
[이득우의 언리얼 프로그래밍 Part2 수업의 정리]
[플레이어의 HP와 스탯을 표시하는 헤드업 디스플레이 UI의 구현]\
헤드업 디스플레이의 생성 과정
- 헤드업 디스플레이 (HUD)는 플레이어 컨트롤러에 의해 제작되고 관리되는 UI객체
- HUD의 구현은 위젯을 생성하고 이를 플레이어 뷰포트에 띄우는 과정으로 생성된다.
- 이렇게 만들어진 위젯은 자신을 소유한 플레이어 컨트롤러에 접근할 수 있다.
- 클래스 추가-> UserWidget 선택-> 클래스 생성 후 WBP_ABHUD의 클래스 세팅으로 가 해당 클래스를 Parent Class로 설정해 생성한 클래스를 상속받도록 설정
- ConstructorHelper를 사용해 생성자에서 WBP_ABHUD를 가져오고, BeginPlay에서 CreateWidget->AddtoViewport를 사용해 화면에 띄워준다.
- 블루프린트에서 쓰던거랑 똑같은 구조인걸 알 수 있다.
#include "Player/ABPlayerController.h"
#include "UI/ABHUDWidget.h"
AABPlayerController::AABPlayerController()
{
static ConstructorHelpers::FClassFinder<UABHUDWidget> ABHUDWidgetRef(TEXT("/Game/ArenaBattle/UI/WBP_ABHUD.WBP_ABHUD_C"));
if (ABHUDWidgetRef.Class)
{
ABHUDWidgetClass = ABHUDWidgetRef.Class;
}
}
void AABPlayerController::BeginPlay()
{
Super::BeginPlay();
FInputModeGameOnly GameOnlyInputMode;
SetInputMode(GameOnlyInputMode);
ABHUDWidget = CreateWidget<UABHUDWidget>(this, ABHUDWidgetClass);
if (ABHUDWidget) {
ABHUDWidget->AddToViewport();
}
}
초기화 프로세스의 정리
- 컴포넌트, 액터, UI 위젯의 초기화 과정
- 컴포넌트는 BeginPlay전에 컴포넌트가 가장 먼저 초기화되어 데이터가 확정되는것이 중요
- Initalize Component로 스텟에 관한 데이터 먼저 초기화
- 액터는 그 후 PostInitialize Components 함수로 안전하게 확정된 데이터를 쓴다
- BeginPlay 이후 PlayerController는 CreateWidget으로 UI 위젯 초기화
- UI위젯은 이때 NativeOnInitialized 함수 호출, 위젯이 생성되는것이고 눈에 보이진 않음
- 눈에 보이려면 AddtoViewport 호출되야함. 이때 UI위젯에서 NativeConstruct로 위젯 확정지음
'Unreal 이론' 카테고리의 다른 글
게임의 완성 (0) | 2024.11.23 |
---|---|
게임 플로우 다듬기 (1) | 2024.11.21 |
인공지능 - 행동트리 모델의 구현 (0) | 2024.11.11 |
인공지능 - 행동트리 모델의 이해 (2) | 2024.11.10 |
게임데이터 관리 (0) | 2024.11.06 |
댓글()