Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Теги особенностей

Введение

У Godot есть специальная система для тегов особенностей. Каждая особенность представлена в виде строки, которая может ссылаться на многие из следующих элементов:

  • Название платформы.

  • Архитектура платформы (64-bit или 32-bit, x86 или ARM).

  • Тип платформы (desktop, mobile, Web).

  • Поддерживаемые алгоритмы сжатия текстур на платформе.

  • Является ли сборка debug или release (debug включает редактор).

  • Выполняется ли проект из редактора или "автономного" двоичного файла.

  • И еще много чего.

Особенности можно запрашивать во время выполнения singleton API, вызывая:

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.

Основные особенности

Вот список большинства тегов особенностей в Godot. Имейте в виду, что они case-sensitive (чувствительны к регистру):

Тег особенности

Описание

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)

windows

Работает на Windows

linux-bsd

Running on Linux or *BSD

debug

Запуск в отладочной сборке (including the editor)

release

Запуск на релизной сборке

editor

Запуск в сборке редактора

шаблон

Running on a non-editor (export template) build

двойной

Running on a double-precision build

одинарной

Running on a single-precision build

64

Запуск на 64-bit сборке (любая архитектура)

32

Запуск на 32-bit сборке (любая архитектура)

x86_64

Запуск на 64-bit x86 сборке

x86_32

Запуск на 32-bit x86 сборке

x86

Running on an x86 build (any bitness)

arm64

Запуск на 64-bit ARM сборке

arm32

Запуск на 32-bit ARM сборке

arm

Running on an ARM build (any bitness)

rv64

Running on a 64-bit RISC-V build

risc-v

Running on a RISC-V build (any bitness)

ppc-64

Running on a 64-bit PowerPC build

ppc-32

Running on a 32-bit PowerPC build

powerpc

Running on a PowerPC build (any bitness)

wasm-64

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

wasm-32

Running on a 32-bit WebAssembly build

WASM

Running on a WebAssembly build (any bitness)

мобильные устройства

Host OS - это мобильная платформа

pc

Host OS - это PC платформа (desktop/laptop)

web

Host OS - это веб-браузер

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

Поддерживаются текстуры с применением сжатия ETC1

etc2

Поддерживаются текстуры с применением сжатия ETC2

s3tc

Поддерживаются текстуры с применением сжатия S3TC (DXT/BC)

movie

Movie Maker mode is active

Предупреждение

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

Чтобы проверить, запущен ли проект, экспортированный в HTML5, на мобильном устройстве, вызовите JavaScript-код, который считывает пользовательский агент браузера.

Пользовательские особенности

Можно добавить пользовательские особенности в сборку; используйте соответствующее поле в export preset, используемое для их создания:

../../_images/feature_tags1.png

Примечание

Пользовательские теги функций используются только при запуске экспортированного проекта (в том числе с помощью Развёртывание в один клик). Они не используются при запуске проекта из редактора, даже если экспортный пресет, помеченный как Runnable для вашей текущей платформы, имеет определенные пользовательские теги функций.

Переопределение параметров проекта

Особенности могут быть использованы для переопределения определенных значений конфигурации в Project Settings. Это позволяет лучше настроить любую конфигурацию при выполнении сборки.

В следующем примере для демо-сборки игры добавляется другой значок (который был настроен в специальном пресете экспорта, который, в свою очередь, включает только демо-уровни).

../../_images/feature_tags2.png

После переопределения добавляется новое поле для этой специфической конфигурации:

../../_images/feature_tags3.png

Примечание

При использовании :ref: настройки проекта "override.cfg" функциональности <class_ProjectSettings> (которая не связана с тегами функций) помните, что теги функций все еще применяются. Поэтому не забудьте также переопределить настройку с помощью желаемого тега(-ов) функции, если вы хотите, чтобы они переопределяли настройки базового проекта на всех платформах и конфигурациях.

Основные переопределения

Уже существует множество настроек, которые по умолчанию поставляются с переопределением; их можно найти во многих разделах настроек проекта.

../../_images/feature_tags4.png

Настройка сборки

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.