반응형
C++에서 Blueprint으로 생성된 위젯을 어떻게 제어할 수 있을까요?
이에 대한 답은 BindWidget 메타 속성입니다.
UPROPERTY(BlueprintReadWrite, meta = (BindWidget))
class UTextBlock* TitleLabel;
UPROPERTY(BlueprintReadWrite, meta = (BindWidget))
class UImage* IconImage;
다음은 예제 코드입니다.
BindExample.h
#pragma once
#include "CoreMinimal.h"
#include "Blueprint/UserWidget.h"
#include "BindExample.generated.h"
UCLASS(Abstract)
class UBindExample : public UUserWidget
{
GENERATED_BODY()
protected:
virtual void NativeConstruct() override;
UPROPERTY(BlueprintReadOnly, meta=(BindWidget))
class UTextBlock* ItemTitle;
};
BindExample.cpp
#include "BindExample.h"
#include "Components/TextBlock.h"
void UBindExample::NativeConstruct()
{
Super::NativeConstruct();
// ItemTitle can be nullptr if we haven't created it in the
// Blueprint subclass
if (ItemTitle)
{
ItemTitle->SetText(FText::FromString(TEXT("Hello world!")));
}
}
언리얼 에디터에서 UBindExample을 부모로하는 Widget Blueprint를 만듭니다.
BindWidget으로 정의한 ItemTitle과 동일한 이름과 타입의 멤버를 추가합니다.
아래 이미지와 같이요~.
meta=(BindWidget)으로 정의하면 항상 동일한 이름의 위젯을 만들어줘야 합니다.
선택적으로 이러한 것을 할 필요가 있습니다. 이 경우 meta=(BindWidgetOptional)로 정의하면 됩니다.
https://benui.ca/unreal/ui-bindwidget/
'게임 개발 > Unreal Engine' 카테고리의 다른 글
[UE] CastChecked (0) | 2024.01.30 |
---|---|
[UE] 언리얼 엔진 AsyncTask 사용 (0) | 2024.01.24 |
[UE] Unreal Engine UObject에서 Tick함수 사용하는 법 (1) | 2023.11.18 |
[UE5] Game Ability System 상세 로그 보기 (0) | 2023.09.15 |
[UE/팁] Blueprint 부모 함수 호출 방법 (0) | 2023.09.14 |