documento oficial
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 meta
seguida de una lista de especificadores. Si es necesario, sus valores se pueden agregar a las macros UCLASS
, UENUM
, UINTERFACE
, USTRUCT
o de la siguiente manera:UFUNCTION
UPROPERTY
{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 |
---|---|
|
Si están presentes, las clases de componentes pueden generarse mediante planos. |
|
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. |
|
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 |
|
Se utiliza para las clases Actor y Componente. Si no se puede marcar la clase nativa, es posible anular |
|
Para los nodos del árbol de comportamiento, la clase está en desuso y se mostrará una advertencia al compilar. |
|
Si una clase está obsoleta, se agregará a las advertencias estándar de obsolescencia al intentar compilar un Blueprint que use esta clase. |
|
El nombre de este nodo en Blueprint será reemplazado por el valor proporcionado aquí, no por el nombre generado por el código. |
|
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. |
|
Exponga un objeto proxy de esta clase en el nodo Tarea asíncrona . |
|
Se utiliza para que la primera subclase de una clase ignore todos los especificadores heredados |
|
Indica si esta clase es una clase base aceptable para crear blueprints, similar a |
|
Una lista de eventos de blueprint que no se pueden anular. |
|
Enumere las interfaces que no son compatibles con la clase. |
|
Utilizado por las clases de la biblioteca Blueprint para limitar el uso de clases con nombre en la lista. |
|
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. |
|
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. |
|
Indica que las clases utilizan datos jerárquicos. Se utiliza para instanciar la funcionalidad de edición de niveles en el panel Detalles. |
|
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 |
---|---|
|
Indica que una variable UPROPERTY entera (establecida mediante el especificador de metadatos "máscara de bits") puede utilizar esta enumeración como indicador. |
|
Marque este tipo como experimental y sin soporte. |
|
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. |
|
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 UMETA
y se especifica después (en lugar de antes) del valor modificado.
valor enumerado etiqueta UMeta |
Efecto |
---|---|
|
El texto proporcionado aquí se nombrará con este valor, no con la denominación generada por el código. |
|
Este valor no se muestra en el editor. |
|
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 |
---|---|
|
除了仅限内部的函数,此接口可能不包含BlueprintImplementableEvent 或 BlueprintNativeEvent函数。如果其包含蓝图可调用函数(但不是在蓝图中定义),函数必须在原生代码中实现。 |
结构体元数据说明符
结构体可以使用以下元标签说明符:
结构体元标签 |
效果 |
---|---|
|
说明此结构体拥有一个自定义Break Struct节点。必须提供模块、类和函数命名。 |
|
说明此结构体拥有一个自定义Break Struct节点。必须提供模块、类和函数命名。 |
|
Make Struct和Break Struct节点中的引脚默认为隐藏状态。 |
|
完整提示文本过长时使用的简短提示文本,例如父类选取器对话。 |
|
覆盖从代码注释自动生成的提示文本。 |
函数元数据说明符
函数元标签 |
效果 |
---|---|
|
以逗号分隔的参数列表将显示为高级引脚(需要UI扩展)。 |
|
用一个数字替代 |
|
说明 |
|
使用 |
|
如列出参数(由引用传递)的引脚未连接,其将拥有一个自动创建的默认项。这是蓝图的一个便利功能,经常在数组引脚上使用。 |
|
仅能由来自蓝图函数库的静态 |
|
此函数是一个内部实现细节,用于实现另一个函数或节点。其从未直接在蓝图图表中公开。 |
|
此函数只能在蓝图中的拥有对象上调用。其无法在另一个实例上调用。 |
|
用于拥有一个 |
|
说明 |
|
说明 |
|
列出的参数都会被视为通配符。此说明符需要 要声明自定义 |
|
用于 |
|
蓝图对此函数进行引用时将引起编译警告,告知用户函数已废弃。可使用 |
|
如果函数已废弃,尝试编译使用此函数的蓝图时,其将被添加到标准废弃警告。 |
|
被标记为 |
|
此节点在蓝图中的命名将被此处提供的值所取代,而非代码生成的命名。 |
|
用于 |
|
用于 |
|
隐藏用于指出函数调用所处对象的self引脚。self引脚在与调用蓝图的类兼容的 |
|
与 |
|
指定在搜索此函数时可使用的一套关键词,例如合适放置节点在蓝图图表中调用函数。 |
|
说明一个延迟操作。延迟操作拥有类型为 |
|
用于延迟 |
|
用于 |
|
用于 |
|
只在蓝图函数库中有效。此函数将被视为拥有类的整体 |
|
完整提示文本过长时使用的简短提示文本,例如父类选取器对话。 |
|
覆盖从代码注释自动生成的提示文本。 |
|
在Actor构造时调用此函数并非安全操作。 |
|
由 |
属性元数据说明符
属性元标签 |
效果 |
---|---|
|
用于 |
|
用于 |
|
用于 |
|
用于整数属性。将可在UI中输入的有效值锁定在0和命名数组属性的长度之间。 |
|
用于 |
|
用于 |
|
属性默认项由蓝图编译器生成, |
|
用于浮点和整数属性。指定可在属性中输入的最小值 |
|
用于浮点和整数属性。指定可在属性中输入的最大值 |
|
此属性被序列化为一个配置( |
|
由 |
|
在蓝图编辑器中,名为 |
|
此属性显示的命名,不显示代码生成的命名。 |
|
如两个属性有相同的 |
|
说明属性是一个资源类型,其应显示选中资源的缩略图。 |
|
对一个布尔属性进行命名,此属性用于说明此属性的编辑是否被禁用。将"!"放置在属性命名前可颠倒测试。 |
|
使排列的元素无法通过拖拽来重新排序。 EditCondition元标签不再仅限于单个布尔属性。它现在由完全成熟的算式解析器计算,意味着可以包含一个完整的C++表达式。 |
|
结合 |
|
在蓝图编辑器中编译一个函数列表时,指定其函数应被公开的类目的列表。 |
|
指定此属性是否应在此类类型的一个Spawn Actor节点上公开。 |
|
由 |
|
使该属性的"Get"蓝图节点返回对属性的常量引用,而不是其值的副本。只对稀疏类数据生效,只能在不存在 |
|
用于 |
|
用于 |
|
表示出布尔属性只内联显示为其他属性中的一个编辑条件切换,不应显示在其自身的行上。 |
|
Usado por |
|
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. |
|
Evita que los blueprints generen un nodo de "obtención" para esta propiedad. Solo es válido para datos escasos. |