UE_C++ —— TSubclassOf

        

        TSubclassOf 是提供 UClass 类型安全的模板类;如在创建一个投射物类,允许设计者指定伤害类型,可只创建一个 UClass 类型的 UPROPERTY,让设计者指定派生自 UDamageType 的类,或者可使用 TSubclassOf 模板强制要求此选择;

//可选择任意 Uclass
/** type of damage */
UPROPERTY(EditDefaultsOnly, Category=Damage)
UClass* DamageType;
//模板类告知编辑器的属性窗口只列出派生自 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值