UE4类修饰符

时间:2023-12-16 18:48:32

官方文档链接:

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对象。