查看: 184|回复: 5

[编程指南] 【TSubclassOf | Unreal Engine】

[复制链接]

1

主题

273

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
73038
发表于 2016-6-26 02:01:53 | 显示全部楼层 |阅读模式



TSubclassOf 是提供 UClass 类型安全性的模板类。例如您在创建一个投射物类,允许设计者指定伤害类型。您可只创建一个 UClass 类型的 UPROPERTY,让设计者指定派生自 UDamageType 的类;或者您可使用 TSubclassOf 模板强制要求此选择。以下示例代码展示了不同之处:
/** type of damage */UPROPERTY(EditDefaultsOnly, Category=Damage)UClass* DamageType;
Vs.
/** type of damage */UPROPERTY(EditDefaultsOnly, Category=Damage)TSubclassOfUDamageType DamageType;
在第二个声明中,模板类告知编辑器的属性窗口只列出派生自 UDamageType 的类(作为属性选择)。在第一个声明中可选择任意 UClass。下图对此进行了说明。

image_0.jpg



策略游戏投射物蓝图的范例

除 UPROPERTY 安全外,您还能获得 C++ 层级上的类型安全。如尝试进行不兼容 TSubclassOf 类型的相互指定,将出现编译错误。尝试指定泛型 UClass 时,它将执行一个运行时检查,以确定它可执行指定。如运行时检查失败,结果数值为 nullptr。
UClass* ClassA = UDamageType::StaticClass();TSubclassOfUDamageType ClassB;ClassB = ClassA; // Performs a runtime checkTSubclassOfUDamageType_Lava ClassC;ClassB = ClassC; // Performs a compile time check
回复

使用道具 举报

0

主题

874

帖子

2868

积分

vip会员

Rank: 1

积分
2868
发表于 2016-7-2 19:23:41 | 显示全部楼层
这个必须顶,撸主好人
回复 支持 反对

使用道具 举报

0

主题

928

帖子

3074

积分

vip会员

Rank: 1

积分
3074
发表于 2016-7-3 23:08:00 来自手机 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

940

帖子

3104

积分

vip会员

Rank: 1

积分
3104
发表于 2016-7-4 11:26:26 | 显示全部楼层
好东西这么多....
回复 支持 反对

使用道具 举报

0

主题

884

帖子

2904

积分

vip会员

Rank: 1

积分
2904
发表于 2016-7-7 11:16:06 来自手机 | 显示全部楼层
看看价钱,然后考虑。
回复 支持 反对

使用道具 举报

0

主题

830

帖子

2757

积分

vip会员

Rank: 1

积分
2757
发表于 2016-7-18 09:34:38 | 显示全部楼层
这个必须顶,撸主好人
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部