目录
简介
UE4使用其自己的反射系统来支持动态功能,如详细面板、垃圾回收、序列化、网络复制和蓝图/C++通信等。C++本身不支持任何形式的反射,所以UE4建立了反射来收集和操作有关C++类,结构体,函数,成员变量和枚举的信息。
使用反射系统需要有如下头文件支持,只能继承自UObject:
#include "TestActor.generated.h"//以创建ATestActor为例,由UE4自动生成
GENERATED_BODY()//此宏包含UObject类生成样板代码
可以使用UENUM(),USTRUCT(),UCLASS(),UPROPERTY(),UFUNCTION(),UINTERFACE() 宏来标注标头文件中的不同类型和成员变量,并且可以包含其他说明符关键字。。
- 元数据说明符
除普通说明符外,在UCLASS(),UPROPERTY(), UFUNCTION(),UINTERFACE()宏中使用 meta 即可使用元数据说明符,控制其在编辑器中的显示效果,而与游戏的逻辑无关,如下所示:
//UPROPERTY(meta=(MetaTag1="Value1",MetaTage2,..))
//例子:限制Speed的最小值和最大值。
UPROPERTY(meta=(ClampMax="0", ClampMax="300"))
float Speed=100.0f;
下面只给出最常用的说明符,分为普通和元数据说明符,其它可以参考