UE4/5C++之关于UCLASS()的说明符和元数据修饰符

类说明符

在声明类时,声明上可添加修饰符以控制引擎和编辑器的不同方面的类表现

Abstract
抽象类说明符将类声明为 “抽象基类”, 防止用户在虚幻编辑器中向世界添加此类的参与者, 或在游戏中创建此类的实例。这对于那些本身没有意义的类很有用。例如, ATriggerBase 基类是抽象的, 而 ATriggerBox 子类别不是抽象的, 您可以在世界上放置一个 ATriggerBox 类的实例, 并且它是有用的, 而 ATriggerBase 的实例本身并不有用

AdvancedClassDisplay
AdvancedClassDisplay 类说明符强制类的所有属性只显示在 “详细信息” 面板的 “高级” 部分中, 默认情况下隐藏在 “视图” 中。若要在单个属性上重写此项, 请在该属性上使用 SimpleDisplay 说明符。

AutoCollapseCategories=(Category1, Category2, …) / DontAutoCollapseCategories=(Category, Category, …)
AutoCollapseCategories类说明符取消对父类AutoExpandCategories说明符的列出类别的影响
DontAutoCollapseCategories否定从父类继承的列出类别的AutoCollapseCategories说明符

AutoExpandCategories=(Category1, Category2, …)
指定应在该类的对象的 “虚幻编辑器” 属性窗口中自动展开的一个或多个类别。若要自动声明为无类别的变量, 请使用声明变量的类的名称

Blueprintable / NotBlueprintable
将此类公开为创建蓝图的可接受基类。默认是NotBlueprintable,除非继承,否则该说明符由子类继承

BlueprintType
将此类公开为可用于蓝图中的变量的类型

ClassGroup=GroupName
表示在Actor浏览器中启用Group View后,虚幻编辑器的Actor浏览器应该在指定的GroupName中包含此类以及此类的任何子类

CollapseCategories / DontCollapseCategories
表示不应将此类的属性分组到虚幻编辑器属性窗口中的类别中。这个说明符被传播给子类;但是,子类可以使用DontCollapseCategories说明符来覆盖它

Config=ConfigName
表示允许此类在配置文件 (. ini) 中存储数据。如果有使用 config 或 globalconfig 说明符声明的任何类属性, 则此指定符将导致这些属性存储在命名的配置文件中。此说明符被传播到所有子类, 不能被否定, 但是子类可以通过 re-declaring 配置说明符并提供不同的 ConfigName 来更改配置文件。常见的 ConfigName 值是 “Engine”、”Editor”、”Input” 和 “Game”

Const
该类中的所有属性和函数都是const的,并以const的形式导出。该说明符由子类继承

ConversionRoot
Root转换将一个子类限制为仅能够转换为第一个Root类的子类,并上升到层次结构

CustomConstructor
阻止自动生成构造函数声明

DefaultToInstanced
这个类的所有实例都被认为是“实例化”的。实例化的类(组件)在构建时被复制。该说明符由子类继承

DependsOn=(ClassName1, ClassName2, …)
列出的所有类将在该类之前编译。类必须在同一个 (或上一个) 包中指定一个类。可以使用由逗号分隔的单个取决于行指定多个依赖项类, 也可以为每个类使用单独的取决于行指定。当类使用在另一个类中声明的结构或枚举时, 这一点很重要, 因为编译器只知道它已编译的类中的内容

Deprecated
这个类不推荐使用,而且这个类的对象在序列化的时候不会被保存。该说明符由子类继承

EditInlineNew / NotEditInlineNew
表示可以从 “虚幻编辑器” 属性窗口创建此类的对象, 而不是从现有资产引用。默认行为是只有对现有对象的引用才可以通过属性窗口分配。此说明符被传播到所有子类;子类可以使用 NotEditInlineNew 说明符来重写此说明符

HideCategories=(Category1, Category2, …) / ShowCategories=(Category1, Category2, …)

HideCategories列出应隐藏在此类对象的 “虚幻编辑器” 属性窗口中的一个或多个类别。若要隐藏声明为 “no” 类别的属性, 请使用声明该变量的类的名称。此说明符被传播到子类
ShowCategories为所列出的类别取消一个HideCategories说明符(从基类继承)
HideDropdown
防止在虚幻编辑器属性窗口组合框中显示此类

HideFunctions=(Category1, Category2, …)/ ShowFunctions=(Category1, Category2, …)

HideFunctions从属性查看器隐藏指定类别中的所有函数
ShowFunctions在属性查看器中显示列出的类别中的所有功能
HideFunctions=FunctionName**/ ShowFunctions**=FunctionName

HideFunctions隐藏属性查看器中的指定名称的函数
ShowFunctions显示属性查看器中的指定名称的函数


Intrinsic
这表明这个类是直接用C ++声明的,并且没有虚幻头文件工具生成的样板文件。不要在新类上使用这个说明符

MinimalAPI
仅导致要导出的类的类型信息供其他模块使用。类可以被强制转换, 但不能调用类的函数 (内联方法除外)。这提高了编译时间, 因为不为不需要在其他模块中访问所有函数的类导出所有内容

NoExport
表示此类的声明不应包含在由标头生成器自动生成的 c++ 头文件中。必须在单独的头文件中手动定义 c++ 类声明。仅对本机类有效。不要将此用于新类

Placeable / NotPlaceable
表示可以在编辑器中创建此类, 并将其置于关卡、UI 场景或蓝图中 (具体取决于类类型)。此标志将传播到所有子类;子类可以使用 NotPlaceable 说明符来重写此标志

Transient / NonTransient
属于此类的对象将永远不会保存到磁盘。这与某些非永久性的自然类 (如播放器或窗口) 结合使用非常有用。此说明符被传播到子类, 但可以由 NonTransient 说明符重写

Within=OuterClassName
这个类的对象不能存在于一个OuterClassName对象的实例之外。这意味着创建这个类的Object需要提供一个OuterClassName的实例作为其外部对象

元数据修饰符

对元数据修饰符的使用按常规类、函数和接口修饰符而不同

BlueprintSpawnableComponent
如果存在, 组件类可以由蓝图生成

BlueprintThreadSafe
仅对蓝图函数库有效。此说明符将此类中的函数标记为在动画蓝图中的游戏线程上可调用

ChildCannnotTick / ChildCanTick

ChildCannnotTick用于Actor和Component类。如果本机类不能勾选, 基于此Actor或Component的蓝图生成的类将永远不会勾选, 即使 bCanBlueprintsTickByDefault 为true
ChildCanTick用于Actor和Component类。如果本机类不能勾选, 则基于此参与者或组件的蓝图生成的类可以覆盖 bCanEverTick 标志, 即使 bCanBlueprintsTickByDefault 是 false
DeprecatedNode
对于行为树节点, 指示该类已弃用, 并在编译时显示警告

DeprecationMessage=”Message Text”
如果该类被弃用, 则在尝试编译使用它的蓝图时, 此消息将被添加到标准弃警告中

DisplayName=”Blueprint Node Name”
蓝图中此节点的名称将替换为此处提供的值, 而不是代码生成的名称

DontUseGenericSpaenObject
不要在蓝图中使用泛型创建对象节点生成类的对象。此说明符仅对既非参与者也不 ActorComponents 的 BluprintType 类是有意义的

ExposedAsyncProxy
在异步任务节点中公开此类的代理对象

IgnoreCategoryKeywordsInSubclasses
用于使类的第一个子类忽略所有继承的 ShowCategories 和 HideCategories 说明符

IsBlueprintBase=”true / false”
声明此类是 (或不是) 用于创建蓝图的可接受基类, 类似于 UCLASS 说明符、Blueprintable 或 “NotBlueprintable”

KismetHideOverrides=”Event1, Event2, …”
不允许重写的蓝图事件列表

ProhibitedInterfaces=”Interface1, Interface2, …”
列出与类不兼容的接口

RestrictedToClasses=”Class1, Class2, …”
由蓝图函数库类使用, 用于限制列表中命名的类的用法

ShortToolTip
在某些上下文中使用的简短工具提示, 其中完整的工具提示可能是压倒性的, 如父类选择器对话框

ToolTip
重写代码注释中自动生成的工具提示

ShowWorldContextPin
表示放置在此类所拥有的关系图中的蓝图节点必须显示它们的世界上下文针脚, 即使它们通常是隐藏的, 因为此类的对象不能用作世界上下文

UsesHierarchy
表示类使用分层数据。用于实例化详细信息面板中的分层编辑功能

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多方通行8

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值