오늘의 개발

코드 (GameModeBase.h)

UCLASS()
class PROJECTDOLL_API AProjectDollGameModeBase : public AGameModeBase
{
	GENERATED_BODY()	
public :
	virtual void StartPlay() override;

	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="ProjectDoll")
	UUserWidget* CurrentWidget;
	
	//TSubclassOf<Type> <- Type을 제한하는 구문
	UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="ProjectDoll")
	TSubclassOf<UUserWidget> HUDWidget;

여기서 HUDWidget에 언리얼 에디터에서 BP로 만든 PlayerUI를 연결.

CurrentWidget은 CPP 파일에서 HUD Widget에 받아온 것을 Viewport에 넣어주는 역할

코드 (GameModeBase.cpp)

void AProjectDollGameModeBase::StartPlay() {
	Super::StartPlay();

	CurrentWidget = CreateWidget<UUserWidget>(GetWorld(), HUDWidget);
	CurrentWidget->AddToViewport();
}

구조

Untitled

또 다른 오늘의 개발