언리얼C++ 기초, 알고리즘 1문제
RootWidget은 WBP를 벡터처럼 순서대로 관리해서 번호에 맞게 띄울 수 있게 해주는 관리 Widget이다.
WidgetSwitcher를 이용해서 관리한다. 만약 WidgetSiwtcher을 이용해서 관리하지않으면 계속 생성/제거를 반복해야 한다.
ScreenSwitcher
├─ WBP_MainMenu // Index 0
├─ WBP_Lobby // Index 1
├─ WBP_Result // Index 2
void UOutGameRootWidget::ShowResult()
{
ScreenSwitcher->SetActiveWidgetIndex(2);
}
UTextBlock* ScoreText = Cast<UTextBlock>(HUDWidget->GetWidgetFromName(TEXT("Score")));
이건 문자열 이름을 틀려도 컴파일 때 알 수 없다. 또 WBP에서 이름 바꾸면 런타임에 실패 할 수 있음.
BindWidget은 C++ 멤버 변수처럼 바로 쓸 수 있다.
ScoreText->SetText(FText::FromString(TEXT("Score: 10")));
ContinueButton->OnClicked.AddUniqueDynamic(this, &ThisClass::HandleContinueClicked);