UE4 UCLASS(...)
类说明符 UCLASS 和元数据(meta)可以定义引擎和编辑器特定的行为。
类声明的语法如下所示:
UCLASS([specifier, specifier, ...], [meta(key=value, key=value, ...)])
class ClassName : public ParentName
{
GENERATED_BODY()
}
声明包含一个类的标准 C++ 类声明。在标准声明之上,描述符(如类说明符和元数据)将被传递到 UCLASS 宏。它们用于创建被声明类的 UClass,它可被看作引擎对类的专有表达。此外,GENERATED_BODY() 宏必须被放置在类体的最前方。
UCLASS 宏的有效关键字
classGroup
此关键字用于在编辑器中设置显示该类的actor组。
Within
UCLASS(Within=PlayerController)
声明此类的实例应始终具有指定类的外部。除非被覆盖,否则它由子类继承。
BlueprintType
将此类公开为可用于蓝图中变量的类型。

NotBlueprintType
防止此类用于蓝图中的变量。
Blueprintable
将此类公开为创建蓝图的可接受基类。


NotBlueprintable
指定该类不是创建蓝图的可接受基类。

MinimalAPI
此关键字指示该类应该在其模块外部可以访问,但是不需要导出所有方法。仅导出为dynamic_cast <>等工作所需的自动生成的方法。
customConstructor
防止自动生成构造函数声明。
Intrinsic
类直接在C ++中声明,并且没有UnrealHeaderTool生成的样板。请勿在新课程上使用此标志。
noexport
不会为此类创建自动生成的代码;标头仅用于解析元数据。请勿在新课程上使用此标志。
placeable
表明该类可在虚幻编辑器内进行创建并被放置在关卡,UI场景,或蓝图内(取决于该类类型)。此标识被传递到所有的子类中,子类可使用 NotPlaceable 关键字来重载该标识。
notplaceable
否定从基类继承的Placeable关键字。表示在虚幻编辑器中不可以将这个类放置到关卡等位置。
DefaultToInstanced
此类的所有实例均被视为“实例”。实例化的类(组件)在构造时被复制。该标志由子类继承。
Const
此类中的所有属性和函数都是const,应将其导出为const。该标志由子类继承。
Abstract
类是抽象的,不能直接实例化。
deprecated
不推荐使用此类,并且在序列化时不会保存此类的对象。该标志由子类继承。
Transient
此类无法保存;在保存时将其清空。该标志由子类继承。
nonTransient
此类应正常保存(它会取消继承的瞬态标志)。
config
在构造时加载对象配置。这些标志被子类继承。包含配置属性的类。用法config = ConfigName或config = inherit(继承自基类的配置名称)。
perObjectConfig
根据每个对象而不是每个类来处理对象配置。
configdonotcheckdefaults
确定是否在序列化为配置时应在base / defaults ini的基础上进行检查
defaultconfig
仅将对象配置保存到默认INI,而不保存到本地INI。
editinlinenew
这些会影响属性编辑器的行为。可以通过editinline新建按钮构造类。
noteditinlinenew
无法通过editinline“新建”按钮构造类。
hidedropdown
未在编辑器下拉列表中显示的类用于选择类。
showCategories
在属性查看器中显示指定的类别。用法:showCategories = CategoryName或showCategories =(category0,category1,...)
hideCategories
在属性查看器中隐藏指定的类别。用法:hideCategories = CategoryName或hideCategories =(category0,category1,...)
ComponentWrapperClass
表示此类是组件的包装器类,而组件的内部功能很少(如果该类在蓝图中被子类化,则将导致hideCategories和showCategories之类的东西被忽略)
showFunctions
在属性查看器中显示指定的函数。用法:showFunctions = FunctionName或showFunctions =(category0,category1,...)
hideFunctions
在属性查看器中隐藏指定的函数。用法:hideFunctions = FunctionName或hideFunctions =(category0,category1,...)
autoExpandCategories
指定应在属性查看器中自动扩展哪些类别。
autoCollapseCategories
指定应在属性查看器中自动折叠哪些类别。
dontAutoCollapseCategories
清除自动折叠类别的列表。
collapseCategories
在编辑器中显示属性,而不使用类别。
dontCollapseCategories
使用类别(默认行为)在编辑器中显示属性。
AdvancedClassDisplay
默认情况下,该类的所有属性都隐藏在主显示中,并且仅在高级详细信息部分中显示。
ConversionRoot
根转换将子类限制为只能转换为层次结构中第一个根类的子类。
Experimental
将该类标记为“实验性”(完全不受支持和未记录的原型)
EarlyAccessPreview
将该类标记为“抢先体验”预览(虽然尚未考虑生产准备,但已超出“实验性”一步,将作为将来的预览提供)
SparseClassDataType
有些属性每个类在sidecar结构中存储一次,而不是在类的实例中存储。
Metadata
可在UCLASS中使用的元数据。
BlueprintSpawnableComponent
用于Actor组件类。如果存在,则表示可以由蓝图生成。
ChildCanTick
用于Actor和Component类。如果本机类不能打勾,则即使bCanBlueprintsTickByDefault为false,Blueprint生成的基于此Actor或Component的类也可以覆盖bCanEverTick标志。
用于Actor和组件类。如果本地类无法tick,那么可以覆盖基于此Actor或组件的蓝图生成类的 bCanEverTick 标签,即使 bCanBlueprintsTickByDefault 为false也同样如此。
ChildCannotTick
用于Actor和组件类。如果本地类无法tick,那么基于此Actor或组件的蓝图生成类则无法tick,即使 bCanBlueprintsTickByDefault 为true也同样如此。
IgnoreCategoryKeywordsInSubclasses
用于使类的第一个子类忽略所有继承的showCategories和hideCategories命令
DeprecatedNode
对于BehaviorTree节点,表明该类已弃用,并且在编译时将显示警告。
DeprecationMessage
DeprecationMessage="Message Text"
[ClassMetadata] [PropertyMetadata] [FunctionMetadata]与DeprecatedNode,DeprecatedProperty或DeprecatedFunction结合使用以自定义显示给用户的警告消息。
如果类已废弃,尝试编译使用此类的蓝图时,其将被添加到标准废弃警告。
DisplayName
[ClassMetadata] [PropertyMetadata] [FunctionMetadata]为该类,属性或函数显示的名称,而不是根据其名称自动生成的名称。

UCLASS(classGroup="TestActor",meta = (DisplayName = "TestActor_Name"))
ToolTip
ToolTip="Hand-written tooltip"
覆盖从代码注释自动生成的提示文本。

UCLASS(classGroup="TestActor",meta = (DisplayName = "TestActor_Name", ToolTip = "UCLASS Test Tip."))
ShortTooltip
ShortToolTip="Short tooltip"
完整提示文本过长时使用的简短提示文本,例如父类选取器对话。
ScriptName
[ClassMetadata] [PropertyMetadata] [FunctionMetadata]将类,属性或函数导出为脚本语言时要使用的名称。可以包括不赞成使用的名称,作为其他用分号分隔的条目。
IsBlueprintBase
IsBlueprintBase="true/false"
指定该类是创建蓝图的可接受基类。说明此类是否为创建蓝图的一个可接受基类,与 UCLASS 说明符、Blueprintable 或 'NotBlueprintable` 相似。
KismetHideOverrides
逗号分隔的蓝图事件列表,不允许在此类型的类中重写
ProhibitedInterfaces
指定与该类不兼容的接口。
RestrictedToClasses
由BlueprintFunctionLibrary类用于限制图形,可将库中的函数用于指定的类。
ShowWorldContextPin
说明放置在此类拥有的图表中的蓝图节点必须显式其World情景引脚(即使其通常状态下为隐藏也同样如此),因为此类的对象无法被用作World情景。
指示在将蓝图节点放置在此类拥有的图形中时,隐藏的世界上下文图钉应该可见,因为该类的自身上下文无法。
提供世界环境,必须手动将其连接。
DontUseGenericSpawnObject
不要使用“蓝图”中的“通用创建对象”节点来生成类的对象。仅对于既不是Actor也不是ActorComponent的BluprintType类,它才有意义。
ExposedAsyncProxy
在“异步任务”节点中公开此类的代理对象。
BlueprintThreadSafe
仅对蓝图函数库有效。将此类中的函数标记为在动画蓝图中的非游戏线程上可调用。
UsesHierarchy
指示该类使用分层数据。用于实例化详细信息面板中的分层编辑功能。
UCLASS(classGroup="TestActor",meta = (DisplayName = "TestActor_Name", ToolTip = "Test Actor UCLASS ."))

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!