(1) UClass를 사용할경우!
/** type of damage */
UPROPERTY(EditDefaultsOnly, Category=uclassDmage)
UClass* DamageType;
- UClass로 할당될수 있는 모든클래스들이 보인다 이렇게될경우 잘못된 클래스를 할당할수 있다.
(2) TSubclassOf
- 언리얼 프로그래밍시 UClass유형의 안정성을 위해 사용할수있는 템플릿클래스이다.
TSubclassOf를 사용할경우!
/** type of damage */
UPROPERTY(EditDefaultsOnly, Category=tsubDmage)
TSubclassOf<UDamageType> DamageType;
- TSubclassOf의경우는 UDabageType 으로 파생된 클래스만 할당할수 있어 안정성을 확보할 수 있다.
- Tsubclassof 에 호환되지 않는 클래스를 할당하려 했을때 한번 검증하는 과정을 거친다,
할당할수 없는경우 컴파일 오류가 난다.
UDamageType* dmgType; //인스턴스(이미 생성된 오브젝트)를 가리킴!!!
//생성된거면 해당 객체를 가리키고
//생성안된거면 nullptr 가리킴
UClass* DamageType; //클래스를 가리킴
TSubclassOf<UDamageType> DamageType; //클래스를 가리킴