[언리얼 엔진] TSubclassOf

    TSubclassOf

    TSubclassOf는 UClass 유형의 안전성을 보장해주는 템플릿 클래스이다.
    특정(UDamageType) 파생 클래스만 할당하기를 바랄 때 사용한다. 그러면 에디터의 프로퍼티 창에 해당 클래스의 파생 클래스만 선택되도록 한다.

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

    이러한 UPROPERTY 안전성의 추가로, C++ 수준에서의 유형 안전성도 확보할 수 있다. 비호환 TSubclassOf 유형을 할당하려는 순간 컴파일 오류가 발생한다. 범용적인 UClass를 할당하려고 할 때, 할당이 가능한지 검증을 실행시간에 검사를 한다. 검사에 실패하면 nullptr를 반환한다.

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

    문서

    반응형

    댓글

    Designed by JB FACTORY