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

Введение

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

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

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

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

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

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

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

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

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

OS.has_feature(name)

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

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

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

Описание

Android

Работает на Android

HTML5

Работает на HTML5

JavaScript

:ref:`JavaScript singleton <doc_javascript_eval> ` доступен

OSX

Работает на macOS

iOS

Работает на iOS

UWP

Работает на UWP

Windows

Работает на Windows

X11

Работает на X11 (Linux/BSD desktop)

Server

Работает на the headless server platform

debug

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

release

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

editor

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

standalone

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

64

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

32

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

x86_64

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

x86

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

arm64

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

arm

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

mobile

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

pc

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

web

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

etc

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

etc2

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

s3tc

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

pvrtc

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

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

With the exception of texture compression 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.

To check whether a project exported to HTML5 is running on a mobile device, call JavaScript code that reads the browser's user agent.

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

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

../../_images/feature_tags1.png

Примечание

Custom feature tags are only used when running the exported project (including with Развёртывание в один клик). They are not used when running the project from the editor, even if the export preset marked as Runnable for your current platform has custom feature tags defined.

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

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

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

../../_images/feature_tags2.png

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

../../_images/feature_tags3.png

Примечание

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

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

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

../../_images/feature_tags4.png

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

Теги особенностей также можно использовать для настройки процесса сборки, написав пользовательский ExportPlugin. Они также используются для указания того, какая общая библиотека загружается и экспортируется в GDNative.