Теги особенностей¶
Введение¶
У 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, используемое для их создания:
Примечание
Пользовательские теги функций используются только при запуске экспортированного проекта (в том числе с помощью Развёртывание в один клик). Они не используются при запуске проекта из редактора, даже если экспортный пресет, помеченный как Runnable для вашей текущей платформы, имеет определенные пользовательские теги функций.
Переопределение параметров проекта¶
Особенности могут быть использованы для переопределения определенных значений конфигурации в Project Settings. Это позволяет лучше настроить любую конфигурацию при выполнении сборки.
В следующем примере для демо-сборки игры добавляется другой значок (который был настроен в специальном пресете экспорта, который, в свою очередь, включает только демо-уровни).
После переопределения добавляется новое поле для этой специфической конфигурации:
Примечание
При использовании :ref: настройки проекта "override.cfg" функциональности <class_ProjectSettings> (которая не связана с тегами функций) помните, что теги функций все еще применяются. Поэтому не забудьте также переопределить настройку с помощью желаемого тега(-ов) функции, если вы хотите, чтобы они переопределяли настройки базового проекта на всех платформах и конфигурациях.
Основные переопределения¶
Уже существует множество настроек, которые по умолчанию поставляются с переопределением; их можно найти во многих разделах настроек проекта.
Настройка сборки¶
Теги особенностей также можно использовать для настройки процесса сборки, написав пользовательский ExportPlugin. Они также используются для указания того, какая общая библиотека загружается и экспортируется в GDNative.