KoreanFoodie's Study

언리얼 TSubClassOf 가 비어있을 때 본문

Game Dev/Unreal C++ : Dev Log

언리얼 TSubClassOf 가 비어있을 때

GoldGiver 2024. 8. 16. 10:53

언리얼 TSubClassOf 가 비어있을 때

핵심 :

1. EditDefaultsOnly, EditAnywhere 등의 UPROPERTY 메타 태그를 잘 써보자

간혹 그럴 때가 있다. 위젯을 생성할 때, 블루프린트에 생성하고 싶은 BP 위젯을 넣어 코드에서 동적으로 생성하는 경우가.

UPROPERTY(BlueprintReadWrite, Category = Config)
TSubclassOf<class UMyWidget> MyWidgetClass;

보통은 위처럼 TSubclassOf 를 사용해서 위젯 블루프린트 클래스를 넣어주는데...

A -> B -> C ... 처럼 위젯의 hierarchy 구조가 있고, 내가 위의 TSubclassOf 세팅을 B 에서 했을 때, 최상위 부모 위젯인 A 에서는 MyWidgetClass 가 nullptr 인 이상한 경우가 있다.

 

그럴 때는 아래처럼 바꿔보자.

UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = Config)
TSubclassOf<class UMyWidget> MyWidgetClass;

// or

UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Config)
TSubclassOf<class UMyWidget> MyWidgetClass;

위처럼 바꾸고 에디터를 다시 키면, 마술처럼 MyWidgetClass 가 블루프린트에서 제대로 확인이 되는 상황이 만들어지곤 한다.

 

여름이었다.

Comments