UGameUIRouterSubsystem의 HUDLayoutClass 설정

void UGameUIRouterSubsystem::Initialize(FSubsystemCollectionBase& Collection)
{
	Super::Initialize(Collection);

	// LocalPlayer 전용이라 서버에서는 절대 실행되지 않음
	if (!HUDLayoutClass) return;

	HUDLayout = CreateWidget<UHUDLayoutWidget>(GetWorld(), HUDLayoutClass);
	if (HUDLayout)
	{
		HUDLayout->AddToViewport();
		CurrentLayout = EHUDLayout::InGame; // 기본 Layout
	}
}
void UGameUIRouterSubsystem::SetHUDLayoutClass(TSubclassOf<UHUDLayoutWidget> InClass)
{
	HUDLayoutClass = InClass;
}
void UGameUIRouterSubsystem::CreateHUD()
{
	// LocalPlayer 전용이라 서버에서는 절대 실행되지 않음
	if (!HUDLayoutClass) return;

	HUDLayout = CreateWidget<UHUDLayoutWidget>(GetWorld(), HUDLayoutClass);
	if (HUDLayout)
	{
		HUDLayout->AddToViewport();
		CurrentLayout = EHUDLayout::InGame; // 기본 Layout
	}
}

실제 사용 위치

if (UGameUIRouterSubsystem* UISub = LP->GetSubsystem<UGameUIRouterSubsystem>())
{
	if (!HUDWidgetClass)
	{
		return;
	}

	UISub->SetHUDLayoutClass(HUDWidgetClass);
	UISub->CreateHUD();

Widget 추가 방법