Appearance
UObject
UE为了方便对象内存管理和映射数据操作,使UE中的对象大部分继承自UObject。这也意味着:
- 垃圾回收可交由UE管理
- 引用计数更新同上
- 默认属性变化时自动更新
- 运行时可用Cast进行类型信息投射检查
- 可网络复制
UCLASS宏
在引擎新建的CPP文件里,我们在类的上方会看到UCLASS宏,它用于标记,似的引擎能够识别并管理该类。
文件内常见代码说明
- 首先是引入的头文件。
#include "MyObject.generated.h"
假设创建了一个类,文件名为MyObject,那么会有上面这样的头文件被放到头文件引入的最后一行。注意,必须是最后一行,因为它需要了解其他的类。
切记!!一定要最后一行!
然后,用UCLASS()标记我们创建的类,使得UE引擎能够识别并管理。
接着,正式开始声明类
class MYPROJECT_API UMyObject:public UObject{}
如果希望将创建的类公开到其他模块,需要制定MYPROJECT_API。
- 最后,在类中第一句,能看到宏GENERATED_BODY()。这个宏会对类进行设置,以支持引擎要求的基础结构,将成员访问等级设为"public", 而非设置"private"。
构建U类对象指针
cpp
NewObject<AMyObject>();