Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Etiquetas de características

Introducción

Godot tiene un sistema especial para etiquetar la disponibilidad de las características. Cada característica se representa como una cadena, y puede referirse a muchas de las siguientes:

  • Nombre de la plataforma.

  • Arquitectura de la plataforma (64 o 32 bits, x86 o ARM).

  • Tipo de plataforma (escritorio, móvil, web).

  • Algoritmos de compresión de texturas soportados en la plataforma.

  • Si la compilación es de depuración (debug, con editor) o final (release).

  • Si el proyecto se está ejecutando desde el editor o como un binario 'independiente'.

  • Muchas más cosas.

Features can be queried at runtime from the singleton API by calling:

OS.has_feature(name)

OS feature tags are used by GDExtension to determine which libraries to load. For example, a library for linux.debug.editor.x86_64 will be loaded only on a debug editor build for Linux x86_64.

Características por defecto

Aquí hay una lista de la mayoría de las etiquetas de características en Godot. Ten en cuenta que son sensibles a mayúsculas y minúsculas:

Etiquetas de características

Descripción

android

Running on Android (but not within a Web browser)

bsd

Running on *BSD (but not within a Web browser)

linux

Running on Linux (but not within a Web browser)

macos

Running on macOS (but not within a Web browser)

ios

Running on iOS (but not within a Web browser)

visionos

Running on visionOS (but not within a Web browser)

windows

Ejecución en Windows

linuxbsd

Ejecución en Linux o *BSD

debug

Ejecutar en una versión de depuración (incluyendo el editor)

versión

Ejecución en una versión de lanzamiento

editor

Ejecutar en una compilación con editor

editor_hint

Running on an editor build, and inside the editor

editor_runtime

Running on an editor build, and running the project

plantilla

Running on a non-editor (export template) build

doble

Running on a double-precision build

único

Running on a single-precision build

64

Ejecutar en una versión de 64 bits (cualquier arquitectura)

32

Ejecutar en una versión de 32 bits (cualquier arquitectura)

x86_64

Ejecutar en una compilación de 64 bits

x86_32

Ejecutar en una compilación de 32 bits x86

x86

Running on an x86 build (any bitness)

arm64

Ejecutar en una versión de 64 bits ARM

arm32

Ejecutar en una versión de 32 bits ARM

arm

Running on an ARM build (any bitness)

rv64

Running on a 64-bit RISC-V build

riscv

Running on a RISC-V build (any bitness)

ppc64

Running on a 64-bit PowerPC build

ppc32

Running on a 32-bit PowerPC build

ppc

Running on a PowerPC build (any bitness)

wasm64

Running on a 64-bit WebAssembly build (not yet possible)

wasm32

Running on a 32-bit WebAssembly build

wasm

Running on a WebAssembly build (any bitness)

móvil

El sistema operativo anfitrión es una plataforma móvil

pc

El sistema operativo anfitrión es una PC (escritorio/laptop)

web

El sistema operativo anfitrión es un navegador Web

nothreads

Running without threading support

threads

Running with threading support

web_android

Host OS is a Web browser running on Android

web_ios

Host OS is a Web browser running on iOS

web_linuxbsd

Host OS is a Web browser running on Linux or *BSD

web_macos

Host OS is a Web browser running on macOS

web_windows

Host OS is a Web browser running on Windows

etc

Las texturas que utilizan una compresión ETC1 son soportadas

etc2

Las texturas que utilizan una compresión ETC2 son soportadas

s3tc

Las texturas que utilizan una compresión S3TC (DXT/BC) son soportadas

película

Movie Maker mode is active

shader_baker

Project was exported with shader baking enabled (only applies to the exported project, not when running in the editor)

dedicated_server

Project was exported as a dedicated server (only applies to the exported project, not when running in the editor)

Advertencia

With the exception of texture compression, web_<platform> and movie feature tags, default feature tags are immutable. This means that they will not change depending on runtime conditions. For example, OS.has_feature("mobile") will return false when running a project exported to Web on a mobile device.

Para comprobar si un proyecto exportado a la Web se está ejecutando en un dispositivo móvil, utilice OS.has_feature("web_android") or OS.has_feature("web_ios").

Funcionalidades personalizadas

Es posible añadir funciones personalizadas a una compilación, usa el campo correspondiente en el preset de exportación utilizado para generarla:

../../_images/feature_tags1.webp

Nota

Las etiquetas de características personalizadas solo se utilizan al ejecutar el proyecto exportado (incluido con Despliegue con un solo clic). No se utilizan al ejecutar el proyecto desde el editor, incluso si el ajuste preestablecido de exportación marcado como Runnable para tu plataforma actual tiene etiquetas de características personalizadas definidas.

Custom feature tags are also not used in EditorExportPlugin scripts. Instead, feature tags in EditorExportPlugin will reflect the device the editor is currently running on.

Sobrescribir los ajustes del proyecto

Las características se pueden utilizar para sobrescribir valores de configuración específicos en los" Ajustes del proyecto". Esto permite personalizar mejor cualquier configuración al hacer una compilación.

En el siguiente ejemplo, se añade un icono diferente para la compilación de la demo del juego (que se personalizó en un ajuste preestablecido de exportación especial que, a su vez, sólo incluye niveles de demo).

The Project Settings panel

The desired configuration is selected, which effectively copies its properties to the panel above (1). The "demo_build" feature tag is selected (2). The configuration is added to the project settings (3).

Después de sobrescribir, se añade un nuevo campo para esta configuración específica.

../../_images/feature_tags3.webp

Nota

Cuando se utiliza la funcionalidad configuración del proyecto "override.cfg" (que no está relacionada con las etiquetas de características), recuerda que las etiquetas de características todavía se aplican. Por lo tanto, asegúrate de también anular la configuración con la(s) etiqueta(s) de características deseada(s) si deseas que anulen la configuración del proyecto base en todas las plataformas y configuraciones.

Sobreescritura de valores por defecto

Ya hay muchos ajustes que vienen con sobreescrituras por defecto, se pueden encontrar en las secciones de los ajustes del proyecto.

../../_images/feature_tags4.webp

Taking feature tags into account when reading project settings

By default, feature tags are not taken into account when reading project settings using the typical approaches (ProjectSettings.get_setting or ProjectSettings.get). Instead, you must use ProjectSettings.get_setting_with_override.

For example, with the following project settings:

[section]

subsection/example = "Release"
subsection/example.debug = "Debug"

Using ProjectSettings.get_setting("section/subsection/example") will return "Release" regardless of whether a debug build is currently running. On the other hand, ProjectSettings.get_setting_with_override("section/subsection/example") will obey feature tags and will return "Debug" if using a debug build.

Personalización de la Compilación

Feature tags can be used to customize a build process too, by writing a custom ExportPlugin. They are also used to specify which shared library is loaded and exported in GDExtension.