找回密码
 立即注册
查看: 170|回复: 0

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

[复制链接]
发表于 2024-7-15 18:06 | 显示全部楼层 |阅读模式
类说明符

在声明类时,声明上可添加修饰符以控制引擎和编纂器的分歧方面的类表示

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
暗示类使用分层数据。用于实例化详细信息面板中的分层编纂功能
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-23 17:45 , Processed in 0.100802 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表