虚幻引擎中所有对象的基类都是 UObject
。而 UCLASS
宏的作用是标记 UObject
的子类, 以便 UObject 处理系统可以识别它们。引擎能通过一些额外的操作来生成代码,实现反射等操作。大致定义方法如下。
#pragma once
#include 'Object.h'
#include 'MyObject.generated.h' //自动生成,必须最后一个被include
UCLASS()
class MYPROJECT_API UMyObject : public UObject
{
GENERATED_BODY()
};
如 MyProject 希望将 UMyObject 类公开到其他模块,则需要指定 MYPROJECT_API
。
UObject 创建
UObjects 不支持构造器参数。所有的C++ UObject都会在引擎启动的时候初始化,然后引擎会调用其默认构造器。如果没有默认的构造器,那么 UObject 将不会编译。
UObject 应该仅在运行时使用 NewObject 构建,或者将 CreateDefaultSubobject 用于构造器。
方法 | 描述 |
---|---|
NewObject<class T> |
类似于new,但提供了可选参数保证了灵活性。 |
NewNamedObject<class T> |
通过允 |