[UE4] meta del especificador de metadatos

documento oficial

Especificador de metadatos meta https://docs.unrealengine.com/5.1/zh-CN/metadata-specifiers-in-unreal-engine/

Resumen

Al declarar una clase, interfaz, estructura, enumeración, valor de enumeración, función o propiedad, puede agregar  especificadores de metadatos  para controlar cómo interactúa con varios aspectos del motor y el editor. Cada tipo de estructura de datos o miembro tiene su propia lista de especificadores de metadatos.

Para agregar especificadores de metadatos, use una palabra  metaseguida de una lista de especificadores.  Si es  necesario, sus valores se pueden agregar a las  macros UCLASS, UENUM, UINTERFACE, USTRUCTo  de la siguiente manera:UFUNCTIONUPROPERTY

{UCLASS/UENUM/UINTERFACE/USTRUCT/UFUNCTION/UPROPERTY}(SpecifierX, meta=(MetaTag1="Value1", MetaTag2, ..), SpecifierY)

Para agregar un especificador de metadatos a un valor enumerado, agregue  UMETA una etiqueta al valor mismo. Si hay una coma para la separación, se agrega antes de la coma, de la siguiente manera:

UENUM()
enum class EMyEnum : uint8
{
    // Default Value Tooltip
    DefaultValue = 0 UMETA(MetaTag1="Value1", MetaTag2, ..),

    // ValueWithoutMetaSpecifiers Tooltip
    ValueWithoutMetaSpecifiers,

    // ValueWithMetaSpecifiers Tooltip
    ValueWithMetaSpecifiers UMETA((MetaTag1="Value1", MetaTag2, ..),

    // FinalValue Tooltip
    FinalValue (MetaTag1="Value1", MetaTag2, ..)
};

Los metadatos solo existen en la versión del editor; no crees una lógica de juego en torno a los metadatos.

especificador de metadatos de clase

Las clases pueden usar los siguientes especificadores de etiquetas meta:

etiqueta clasificadora

Efecto

BlueprintSpawnableComponent

Si están presentes, las clases de componentes pueden generarse mediante planos.

BlueprintThreadSafe

Solo disponible en bibliotecas de planos. Este especificador marcará las funciones de esta clase como invocables en subprocesos que no sean de juegos en Animation Blueprints.

ChildCannotTick

Se utiliza para las clases Actor y Componente. Si la clase nativa no puede marcar, entonces la clase generada por blueprint basada en este Actor o Componente no puede marcar, incluso  bCanBlueprintsTickByDefault si es verdadero.

ChildCanTick

Se utiliza para las clases Actor y Componente. Si no se puede marcar la clase nativa, es posible anular  bCanEverTick la etiqueta de la clase generada por blueprint en función de este Actor o Componente, incluso  bCanBlueprintsTickByDefault si es falso.

DeprecatedNode

Para los nodos del árbol de comportamiento, la clase está en desuso y se mostrará una advertencia al compilar.

DeprecationMessage="Message Text"

Si una clase está obsoleta, se agregará a las advertencias estándar de obsolescencia al intentar compilar un Blueprint que use esta clase.

DisplayName="Blueprint Node Name"

El nombre de este nodo en Blueprint será reemplazado por el valor proporcionado aquí, no por el nombre generado por el código.

DontUseGenericSpawnObject

No utilice el nodo Generic Create Object en el blueprint para generar un objeto de la clase. Este especificador solo es significativo cuando se usa en una clase BluprintType que no es ni Actor ni ActorComponent.

ExposedAsyncProxy

Exponga un objeto proxy de esta clase en  el nodo Tarea asíncrona  .

IgnoreCategoryKeywordsInSubclasses

Se utiliza para que la primera subclase de una clase ignore todos los especificadores heredados  ShowCategories y  HideCategories .

IsBlueprintBase="true/false"

Indica si esta clase es una clase base aceptable para crear blueprints, similar a  UCLASS un especificador Blueprintable o 'NotBlueprintable'.

KismetHideOverrides="Event1, Event2, .."

Una lista de eventos de blueprint que no se pueden anular.

ProhibitedInterfaces="Interface1, Interface2, .."

Enumere las interfaces que no son compatibles con la clase.

RestrictedToClasses="Class1, Class2, .."

Utilizado por las clases de la biblioteca Blueprint para limitar el uso de clases con nombre en la lista.

ShortToolTip="Short tooltip"

Un breve texto de sugerencia para usar cuando el texto completo de la sugerencia es demasiado largo, como los cuadros de diálogo del selector principal.

ShowWorldContextPin

Indica que los nodos Blueprint colocados en gráficos propiedad de esta clase deben tener sus pines de contexto mundial explícitamente (incluso si normalmente están ocultos), porque los objetos de esta clase no se pueden usar como contextos mundiales.

UsesHierarchy

Indica que las clases utilizan datos jerárquicos. Se utiliza para instanciar la funcionalidad de edición de niveles en el panel Detalles.

ToolTip="Hand-written tooltip"

Anula el texto de la sugerencia generado automáticamente a partir de los comentarios del código.

enumerar especificadores de metadatos

Las enumeraciones pueden usar los siguientes especificadores de metadatos:

lista de etiquetas meta

Efecto

位标记(Bitflags)

Indica que una variable UPROPERTY entera (establecida mediante el especificador de metadatos "máscara de bits") puede utilizar esta enumeración como indicador.

实验性(Experimental)

Marque este tipo como experimental y sin soporte.

ScriptName="Display Name"

La cadena de comillas se usará como el nombre de esta enumeración en el editor, en lugar del valor predeterminado generado con la herramienta Unreal Header.

ToolTip="Hand-written tooltip"

Anula el texto de sugerencia generado automáticamente en los comentarios del código.

Cada valor de la enumeración contiene un especificador de metadatos. Este tipo de especificador de metadatos difiere ligeramente de los demás especificadores de metadatos en que utiliza la palabra clave de nivel superior  UMETAy se especifica después (en lugar de antes) del valor modificado.

valor enumerado etiqueta UMeta

Efecto

DisplayName="Enumerated Value Name"

El texto proporcionado aquí se nombrará con este valor, no con la denominación generada por el código.

Hidden

Este valor no se muestra en el editor.

ToolTip="Hand-written tooltip."

Anula el texto de sugerencia generado automáticamente en los comentarios del código.

especificador de metadatos de interfaz

Las interfaces pueden usar los siguientes especificadores de etiquetas meta:

metaetiqueta de interfaz

Efecto

CannotImplementInterfaceInBlueprint

除了仅限内部的函数,此接口可能不包含BlueprintImplementableEvent 或 BlueprintNativeEvent函数。如果其包含蓝图可调用函数(但不是在蓝图中定义),函数必须在原生代码中实现。

结构体元数据说明符

结构体可以使用以下元标签说明符:

结构体元标签

效果

HasNativeBreak="Module.Class.Function"

说明此结构体拥有一个自定义Break Struct节点。必须提供模块、类和函数命名。

HasNativeMake="Module.Class.Function"

说明此结构体拥有一个自定义Break Struct节点。必须提供模块、类和函数命名。

HiddenByDefault

Make Struct和Break Struct节点中的引脚默认为隐藏状态。

ShortToolTip="Short tooltip"

完整提示文本过长时使用的简短提示文本,例如父类选取器对话。

ToolTip="Hand-written tooltip

覆盖从代码注释自动生成的提示文本。

函数元数据说明符

函数元标签

效果

AdvancedDisplay="Parameter1, Parameter2, .."

以逗号分隔的参数列表将显示为高级引脚(需要UI扩展)。

AdvancedDisplay=N

用一个数字替代 N ,第N之后的所有参数将显示为高级引脚(需要UI扩展)。举例而言:'AdvancedDisplay=2' 将把前两个之外的所有参数标记为高级。

ArrayParm="Parameter1, Parameter2, .."

说明 BlueprintCallable 函数应使用一个Call Array Function节点,且列出的参数应被视为通配符数组属性。

ArrayTypeDependentParams="Parameter"

使用 ArrayParm 时,此说明符将指定一个参数,其将确定 ArrayParm 列表中所有参数的类型。

AutoCreateRefTerm="Parameter1, Parameter2, .."

如列出参数(由引用传递)的引脚未连接,其将拥有一个自动创建的默认项。这是蓝图的一个便利功能,经常在数组引脚上使用。

BlueprintAutocast

仅能由来自蓝图函数库的静态 BlueprintPure 函数使用。Cast节点将根据返回类型和函数首个参数的类型来自动添加。

BlueprintInternalUseOnly

此函数是一个内部实现细节,用于实现另一个函数或节点。其从未直接在蓝图图表中公开。

BlueprintProtected

此函数只能在蓝图中的拥有对象上调用。其无法在另一个实例上调用。

CallableWithoutWorldContext

用于拥有一个 WorldContext 引脚的 BlueprintCallable 函数,说明函数可被调用,即使其类不实现 GetWorld 函数也同样如此。

CommutativeAssociativeBinaryOperator

说明 BlueprintCallable 函数应使用Commutative Associative Binary节点。此节点缺少引脚命名,但拥有一个创建额外输入引脚的 添加引脚(Add Pin) 按钮。

CompactNodeTitle="Name"

说明 BlueprintCallable 函数应在压缩显示模式中显示,并提供在该模式中显示的命名。

CustomStructureParam="Parameter1, Parameter2, ..")

列出的参数都会被视为通配符。此说明符需要 UFUNCTION-level specifier、CustomThunk,而它们又需要用户提供自定义的 exec 函数。在此函数中,可对参数类型进行检查,可基于这些参数类型执行合适的函数调用。永不应调用基础 UFUNCTION,出现错误时应进行断言或记录。

要声明自定义 exec 函数,使用语法 DECLARE_FUNCTION(execMyFunctionName)MyFunctionName 为原函数命名。

DefaultToSelf

用于 BlueprintCallable 函数,说明对象属性的命名默认值应为节点的自我情境。

DeprecatedFunction

蓝图对此函数进行引用时将引起编译警告,告知用户函数已废弃。可使用 DeprecationMessage 元数据说明符添加到废弃警告消息(如提供说明如何替代已废弃的函数)。

DeprecationMessage="Message Text"

如果函数已废弃,尝试编译使用此函数的蓝图时,其将被添加到标准废弃警告。

DevelopmentOnly

被标记为 DevelopmentOnly 的函数只会在Development模式中运行。这适用于调试输出之类的功能(但其不应存在于发布产品中)。

DisplayName="Blueprint Node Name"

此节点在蓝图中的命名将被此处提供的值所取代,而非代码生成的命名。

ExpandEnumAsExecs="Parameter"

用于 BlueprintCallable 函数,说明应为参数使用的 列举 中的每个条目创建一个输入执行引脚。命名参数必须是引擎通过 UENUM 标签识别的一个列举类型。

HidePin="Parameter"

用于 BlueprintCallable 函数,说明参数引脚应从用户视图中隐藏。注意:使用此方式每个函数只能隐藏一个参数引脚。

HideSelfPin

隐藏用于指出函数调用所处对象的self引脚。self引脚在与调用蓝图的类兼容的 BlueprintPure 函数上为自动隐藏状态。这通常与 DefaultToSelf 说明符共用。

InternalUseParam="Parameter"

与 HidePin 相似,这将在用户视图中隐藏命名参数的引脚,只能用于一个函数的一个参数。

KeyWords="Set Of Keywords"

指定在搜索此函数时可使用的一套关键词,例如合适放置节点在蓝图图表中调用函数。

Latent

说明一个延迟操作。延迟操作拥有类型为 FLatentActionInfo 的一个参数,此参数由 LatentInfo 说明符命名。

LatentInfo="Parameter"

用于延迟 BlueprintCallable 函数,说明哪个参数是LatentInfo参数。

MaterialParameterCollectionFunction

用于 BlueprintCallable 函数,说明应使用材质覆盖节点。

NativeBreakFunc

用于 BlueprintCallable 函数,说明函数应以标准Break Struct节点的方式进行显示。

NotBlueprintThreadSafe

只在蓝图函数库中有效。此函数将被视为拥有类的整体 BlueprintThreadSafe 元数据的一个例外。

ShortToolTip="Short tooltip"

完整提示文本过长时使用的简短提示文本,例如父类选取器对话。

ToolTip="Hand-written tooltip

覆盖从代码注释自动生成的提示文本。

UnsafeDuringActorConstruction

在Actor构造时调用此函数并非安全操作。

WorldContext="Parameter"

由 BlueprintCallable 函数使用,说明哪个参数决定运算正在发生的World。

属性元数据说明符

属性元标签

效果

AllowAbstract="true/false"

用于 Subclass 和 SoftClass 属性。说明抽象类属性是否应显示在类选取器中。

AllowedClasses="Class1, Class2, .."

用于 FSoftObjectPath 属性。逗号分隔的列表,表明要显示在资源选取器中的资源类类型。

AllowPreserveRatio

用于 Fvector 属性。在细节面板中显示此属性时将添加一个比率锁。

ArrayClamp="ArrayProperty"

用于整数属性。将可在UI中输入的有效值锁定在0和命名数组属性的长度之间。

AssetBundles

用于 SoftObjectPtr 或 SoftObjectPath 属性。主数据资源中使用的束列表命名,指定此引用属于哪个束的一部分。

BlueprintBaseOnly

用于 Subclass 和 SoftClass 属性。说明蓝图类是否应显示在类选取器中。

BlueprintCompilerGeneratedDefaults

属性默认项由蓝图编译器生成,CopyPropertiesForUnrelatedObjects 在编译后调用时将不会被复制。

ClampMin="N"

用于浮点和整数属性。指定可在属性中输入的最小值 N

ClampMax="N"

用于浮点和整数属性。指定可在属性中输入的最大值 N

ConfigHierarchyEditable

此属性被序列化为一个配置(.ini)文件,可在配置层级中的任意处进行设置。

ContentDir

由 FDirectoryPath 属性使用。说明将使用 Content 文件夹中的Slate风格目录选取器来选取路径。

DisplayAfter="PropertyName"

在蓝图编辑器中,名为 PropertyName 的属性后即刻显示此属性。前提是两个属性属于同一类别,则忽略其在源代码中的顺序进行显示。如多个属性有相同的 DisplayAfter 值和相同的 DisplayPriority 值,将在指定属性之后,按照自身在标头文件中声明的顺序显示。

DisplayName="Property Name"

此属性显示的命名,不显示代码生成的命名。

DisplayPriority="N"

如两个属性有相同的 DisplayAfter 值,或属于同一类别且无 DisplayAfter 元标签,则此属性将决定其顺序。最高优先级值为1,表示 DisplayPriority 值为1的属性将在 DisplayProirity 值为2的属性之上显示。如多个属性有相同的 DisplayAfter 值,其将按照在标头文件中声明的顺序显示。

DisplayThumbnail="true"

说明属性是一个资源类型,其应显示选中资源的缩略图。

EditCondition="BooleanPropertyName"

对一个布尔属性进行命名,此属性用于说明此属性的编辑是否被禁用。将"!"放置在属性命名前可颠倒测试。

EditFixedOrder

使排列的元素无法通过拖拽来重新排序。

EditCondition元标签不再仅限于单个布尔属性。它现在由完全成熟的算式解析器计算,意味着可以包含一个完整的C++表达式。

ExactClass="true"

结合 AllowedClasses 用于 FSoftObjectPath 属性。说明是否只能使用 AllowedClasses 中指定的准确类,或子类是否同样有效。

ExposeFunctionCategories="Category1, Category2, .."

在蓝图编辑器中编译一个函数列表时,指定其函数应被公开的类目的列表。

ExposeOnSpawn="true"

指定此属性是否应在此类类型的一个Spawn Actor节点上公开。

FilePathFilter="FileType"

由 FFilePath 属性使用。说明在文件选取器中显示的路径过滤器。常规值包括"uasset"和"umap",但这些并非唯一可能的值。

GetByRef

使该属性的"Get"蓝图节点返回对属性的常量引用,而不是其值的副本。只对稀疏类数据生效,只能在不存在 NoGetter 时使用。

HideAlphaChannel

用于 Fcolor 和 FLinearColor 属性。说明详细显示属性控件时 Alpha 属性应为隐藏状态。

HideViewOptions

用于 Subclass 和 SoftClass 属性。隐藏在类选取器中修改显示选项的功能。

InlineEditConditionToggle

表示出布尔属性只内联显示为其他属性中的一个编辑条件切换,不应显示在其自身的行上。

LongPackageName

Usado por  FDirectoryPath atributos. Convierta una ruta en un nombre de paquete largo.

MakeEditWidget

Se utiliza para propiedades de transformación o rotación, o permutaciones de cuerpos de transformación/rotación. La propiedad de descripción debe estar expuesta como un control móvil en la ventana gráfica.

NoGetter

Evita que los blueprints generen un nodo de "obtención" para esta propiedad. Solo es válido para datos escasos.

Supongo que te gusta

Origin blog.csdn.net/ZFSR05255134/article/details/129062389
Recomendado
Clasificación