언리얼 - TSubclassOf

안영욱·2023년 2월 22일
0

언리얼

목록 보기
5/5
post-thumbnail

언리얼의 TSubclassOf에대해 알아보겠습니다.


1. TSubclassOf

TSubclassOf는 언리얼 프로그래밍시 UClass유형의 안정성을 위해 사용할수있는 템플릿클래스이다.

1-1. 예시 상황

프로젝트에서 대미지 유형을 지정할 수 있는 프로젝타일 클래스를 개발하고 있다.
그냥 UPROPERTY유형의 UClass를 만들고 디자이너가항상 UDamageType 파생 클래스만을 사용하길 바라거나,
TSubclassOf 템플릿을 사용하여 디자이너가 선택 가능한 클래스를 제한할 수 있다.


UClass를 사용할경우!

/** type of damage */
UPROPERTY(EditDefaultsOnly, Category=uclassDmage)
UClass* DamageType;

위 코드의 결과는 다음과같다.

UClass로 할당될수 있는 모든클래스들이 보인다 이렇게될경우 잘못된 클래스를 할당할수 있다.


TSubclassOf를 사용할경우!

/** type of damage */
UPROPERTY(EditDefaultsOnly, Category=tsubDmage)
TSubclassOf<UDamageType> DamageType;

위의 코드의 결과는 다음과같다.

TSubclassOf의경우는 UDabageType 으로 파생된 클래스만 할당할수 있어 안정성을 확보할 수 있다.

추가적으로 유형의 안정성도 확보할수 있다!

Tsubclassof 에 호환되지 않는 클래스를 할당하려 했을때 한번 검증하는 과정을 거친다, 할당할수 없는경우 컴파일 오류가 난다.

UClass* ClassA = UDamageType::StaticClass();
TSubclassOf<UDamageType> ClassB;
ClassB = ClassA; // Performs a runtime check
TSubclassOf<UDamageType_Lava> ClassC;
ClassB = ClassC; // Performs a compile time check

출처


언리얼 TSubclassof에대해 알아보았습니다
번역이 이상하거나 이해가가지않는부분을 제나름대로 해석하여 작성해보았습니다!
수정할부분은 댓글로 알려주심녀 감사합니다.

profile
개발자좀 한번해보자

0개의 댓글