官方文档链接:
https://docs.unrealengine.com/latest/CHN/Programming/UnrealArchitecture/Reference/index.html
类声明
类声明定义类的名称、其继承的类,以及其继承的函数和变量。类声明还将定义通过 类说明符 和元数据要求的其他引擎和编辑器特定行为。
类声明的语法如下所示:
UCLASS([specifier, specifier, ...], [meta(key=value, key=value, ...)])
class ClassName : public ParentName
{
GENERATED_BODY()
}
声明包含一个类的标准 C++ 类声明。在标准声明之上,描述符(如类说明符和元数据)将被传递到 UCLASS
宏。它们用于创建被声明类的UClass
,它可被看作引擎对类的专有表达。此外,GENERATED_BODY()
宏必须被放置在类体的最前方。
Abstract |
Abstract 类修饰符将类声明为“抽象基类”,这样会阻止用户在虚幻编辑器中向这个世界中添加这个类的Actor,或者在游戏过程中创建这个类的实例。 |
AdvancedClassDisplay |
AdvancedClassDisplay 类修饰符强制类的所有属性仅在 Details(详细信息) 面板中的 高级部分 中显示,并在默认情况下从视图中隐藏。 |
AutoCollapseCategories |
AutoCollapseCategories 类修饰符取消在父类上使用 AutoExpandCategories 修饰符的列出的分类的效果。 |
AutoExpandCategories |
为这个类的对象指定应该在虚幻编辑器属性窗口中自动展开的一个或多个类别。要自动展开没有声明类别的变量,请使用声明这个变量的类的名称。 |
Blueprintable |
指定该类为创建蓝图的可接受基类。除非被继承,否则默认值为NotBlueprintable。它由子类继承。 |
BlueprintType |
此类可作为蓝图中的一种变量类型使用 |
ClassGroup |
表示虚幻编辑器的 Actor 浏览器 在 Actor 浏览器 中启用 Group View(组视图) 的时候应该在指定的 GroupName(组名称) 中包括这个类及其所有子类。 ClassGroup=GroupName |
CollapseCategories |
表示这个类的属性不应该归类在虚幻编辑器属性窗口的类别中。这个关键字被传递给子类,但子类可以使用DontCollapseCategories关键字覆盖这个标志。 |
Config |
表示允许这个类在配置文件(.ini)中存储数据。Config=FileName |
Const |
本类中的所有属性及函数均为常量,并应作为常量导出。该标识由子类继承。 |
ConversionRoot |
根转换限制子类转换,使其仅能转换为其上等级的首个根类的子类 |
CustomConstructor |
防止构造函数声明的自动生成。 |
DefaultToInstanced |
该类中所有实例都被视为"已进行实例化"。已进行实例化的类(组件)在构建时被复制。该标识由子类继承。 |
DependsOn |
表示 ClassName 是在这个类之前进行编译的。DependsOn=(ClassName, Classname, ...) |
Deprecated |
该类已被废弃,并且该类的对象在序列化时将不会被保存。该标识由子类继承。 |
DontAutoCollapseCategories |
取消从父类继承的特定目录的AutoCollapseCategories关键字。 DontAutoCollapseCategories=(Category, Category, ...) |
DontCollapseCategories |
取消从基类继承的CollapseCatogories关键字。 |
EditInlineNew |
表示这个类的对象可以通过虚幻编辑器属性窗口进行创建(默认的操作是只引用可以通过属性窗口进行分配的现有对象)。这个标志将被传递给所有子类,子类可以使用 NotEditInlineNew 关键字覆盖这个标志。 |
HideCategories |
为这个类的对象指定应该隐藏在虚幻编辑器属性窗口中的一个或多个类别。要隐藏没有声明类别的变量,请使用声明这个变量的类的名称。这个关键字被传递给子类。 HideCategories=(Category, Category, ...) |
HideDropdown |
禁止这个类显示在虚幻编辑器属性窗口组合框中。 |
HideFunctions |
将指定函数隐藏在属性视图中。使用方法:hideFunctions=FunctionName或hideFunctions=(category0, category1, ...) |
Intrinsic |
类直接在C++中进行声明,并且不具有由UnrealHeaderTool生成的样板文件。 |
MinimalAPI |
使得类的类型信息由其他模块导出以供使用。这个类可以被投射,但类的函数无法被调用(除了内联方式)。这样可以改善对不需要其所有功能在其它模块进行调用的类的编译时间。 |
NoExport |
表示这个类的声明不应该包含在头文件编译器自动生成的 C++ 头文件中。该 C++ 类声明必须在单独的头文件中手动进行定义。只对 native 类有效。 |
NonTransient |
N取消从基类继承的Transient关键字。 |
NotBlueprintable |
指定该类 不是 创建蓝图的可接受基类。除非被继承,否则默认值为NotBlueprintable。它由子类继承。 |
NotPlaceable |
否定从基类继承的Placeable关键字。表示在虚幻编辑器中不可以将这个类放置到关卡等位置。 |
PerObjectConfig |
这个类的配置信息将会根据对象进行存储,其中每个对象在.ini文件中都有一项,它以这个对象的名字命名,格式为[ObjectName ClassName]。此关键字被传递到子类。 |
Placeable |
表明该类可在虚幻编辑器内进行创建并被放置在关卡,UI场景,或蓝图内(取决于该类类型)。此标识被传递到所有的子类中,子类可使用NotPlaceable 关键字来重载该标识。 |
ShowCategories |
否定从基类继承的特定分类的 HideCategories 关键字。 ShowCategories=(Category, Category, ...) |
ShowFunctions |
在属性视图中显示指定的函数,使用方法:showFunctions=FunctionName或者showFunctions=(category0, category1, ...) |
Transient |
也就是“属于这个类的对象永远不应该保存在磁盘上”。仅在与本身为非持续的native类的特定种类结合使用时有用。这个关键字被传递给子类,子类可以使用NonTransient关键字覆盖这个标志。 |
Within |
Within 类修饰符表明此类的对象不能存在于 ClassName 的实例 之外 。 为了创建这个类的对象,您必须将 ClassName 的实例指定为 Outer对象。 |