一文整理UE4代码中支持反射的说明符关键字——UCLASS篇

虚幻引擎代码纷繁复杂,一定程度上就是因为从UObject开始架构的这套反射系统,它在带给我们优秀的反射机制的同时,也让代码的阅读及编写有了一定的门槛。而我今天,就是想通过这篇文章的整理,试着踏过这道坎。

说明符关键字是虚幻C++实现反射机制的重要一环,反射系统(或者说虚幻编译系统)通过识别这些说明符来将变量、函数、类等添加到反射系统里,进而可以进一步支持GC、序列化等。本文是系列文章中针对UCLASS、UFUNCTION以及UPROPERTY中的UCLASS中可能会出现的关键字进行整理,主要参考虚幻官方文档中的Gameplay Architecture一章以及源码中ObjectMacros.h。本文的本质也是整理和汉化(可理解化)。

总览表

关键字解释
ClassGroup用于分类,特别是component的分类
Within

拆解

ClassGroup

添加新类 UTestSceneComponent继承自USceneComponent,将ClassGroup设定为“Test”(另一种写法ClassGroup = Test或ClassGroup = (Test))。
此外 meta=(BlueprintSpawnableComponent) 的写法是从元数据的角度表明该类是可以有蓝图进行生成的。

UCLASS( ClassGroup="Test", meta=(BlueprintSpawnableComponent) )
class TESTPRJ_API UTestSceneComponent : public USceneComponent
{
	GENERATED_BODY()
	// other code		
};

编译之后,在蓝图内部的即可在对应分类Test下找到该组件。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Claude的羽毛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值