摘自 https://zhuanlan.zhihu.com/p/115750451
当一个头文件中 include “xxx.generated.h“,意味着这个头文件加入了反射系统。那些 UPROPERTY, UFUNCTION 之类的宏,也标记着这些方法属性等等加入了 UE4 的反射系统,加入了反射系统,UE4 才能帮你做 GC(垃圾回收),你才能实现蓝图、C++ 通信等等很多功能。
需要在头文件中声明一个 UCLASS 或 USTRUCT 后后才会生成 “xxx.generated.h”
如在 countdown.h
中加入 UCLASS()
,在 countdown.h
中就可以有如下写法:
#include "countdown.generated.h"
而且 the .generated.h file should always be the last #include in a header
。
UnrealHeaderTool和UnrealBuildTool
刚接触UE4时,我会产生一些疑问,比如Class里的GENERATED_BODY()到底包含了哪些内容,cpp中的XXX_Implementation函数在头