为什么要用TSubClassOf

本文介绍了Unreal Engine 4 (UE4) 中TSubclassOf模板类的作用及使用方法。通过实例对比了使用UClass与TSubclassOf的不同之处,展示了如何限制属性选择范围以提高设计效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TSubclassOf 是提供 UClass 类型安全性的模板类

    例如您在创建一个投射物类,允许设计者指定伤害类型。您可只创建一个 UClass 类型的 UPROPERTY,让设计者指定派生自 UDamageType 的类;或者您可使用 TSubclassOf 模板强制要求此选择。以下示例代码展示了不同之处:

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

VS.

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

    在第二个声明中,模板类告知编辑器的属性窗口只列出派生自 UDamageType 的类(作为属性选择)。在第一个声明中可选择任意 UClass。下图对此进行了说明。(简单点说就是只能选择你想要的类)

image alt text

转载于:https://my.oschina.net/u/3202881/blog/1586681

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值