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

Введение

У 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

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

Автономность

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

64

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

32

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

x86_64

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

x86

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

arm64

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

arm

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

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

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

pc

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

web

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

etc

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

etc2

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

s3tc

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

pvrtс

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

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

За исключением тегов функций сжатия текстуры, теги функций по умолчанию неизменяемы. Это означает, что они не изменяются в зависимости от условий выполнения. Например, OS.has_feature("mobile") будет возвращать false при запуске проекта, экспортированного в HTML5 на мобильном устройстве.

Чтобы проверить, запущен ли проект, экспортированный в 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

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

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