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.
Checking the stable version of the documentation...
Теги функцій
Вступ
У Godot є спеціальна система для позначення доступних функцій. Кожна функція представлена у вигляді рядка, який може посилатися на багато чого з наступного:
Назва платформи.
Архітектура платформи (64-розрядна, або 32-бітна, x86, або ARM).
Тип платформи (настільний, мобільний, веб).
Підтримувані алгоритми стиснення текстур на платформі.
Збірку
debug, абоrelease(debugвключає редактор).Проєкт, що працює із редактора, чи "окремого" бінарника.
Ще багато речей.
Функції можна запитувати під час виконання з єдиного API, викликавши:
OS.has_feature(name)
OS.HasFeature(name);
Теги функцій ОС використовуються GDExtension, щоб визначити, які бібліотеки завантажувати. Наприклад, бібліотека для linux.debug.editor.x86_64 буде завантажена лише у збірці редактора налагодження для Linux x86_64.
Типові можливості
Ось список більшості тегів функцій у Godot. Майте на увазі, що вони чутливі до регістру:
Тег функції |
Опис |
|---|---|
android |
Працює на Android (але не в веб-браузері) |
bsd |
Працює на *BSD (але не в веб-браузері) |
лінукс |
Працює в Linux (але не в веб-браузері) |
macos |
Працює в macOS (але не в веб-браузері) |
ios |
Працює на iOS (але не в веб-браузері) |
visionos |
Працює на visionOS (але не у веббраузері) |
вікна |
Працюємо у Windows |
linux bsd |
Працює на Linux або *BSD |
debug |
Працює у діагностичній збірці (включає редактор) |
release |
Працюємо у збірці для випуску |
editor |
Працює в збірці редактора |
editor_hint |
Запуск на збірці редактора та всередині редактора |
editor_runtime |
Запуск на збірці редактора та запуск проекту |
шаблон |
Працює на збірці без редактора (шаблон експорту) |
подвійний |
Запуск на збірці подвійної точності |
одинак |
Запуск на збірці одинарної точності |
64 |
Працює у 64-бітовій збірці (будь-якої архітектури) |
32 |
Працює у 32-бітовій збірці (будь-якої архітектури) |
x86_64 |
Працюємо у 64-бітовій x86 збірці |
x86_32 |
Працює у 32-бітовій x86 збірці |
x86 |
Працює на збірці x86 (будь-яка розрядність) |
arm64 |
Працює у 64-бітовій ARM збірці |
arm32 |
Працює у 32-бітовій ARM збірці |
arm |
Працює на збірці ARM (будь-яка розрядність) |
rv64 |
Працює на 64-розрядній збірці RISC-V |
risc v |
Працює на збірці RISC-V (будь-яка розрядність) |
p pc64 |
Працює на 64-розрядній збірці PowerPC |
p pc32 |
Працює на 32-розрядній версії PowerPC |
p pc |
Запуск на збірці PowerPC (будь-яка розрядність) |
wasm 64 |
Запуск на 64-розрядній збірці WebAssembly (поки що неможливо) |
wasm 32 |
Працює на 32-розрядній збірці WebAssembly |
wasm |
Запуск на збірці WebAssembly (будь-яка розрядність) |
мобільний телефон |
Основна операційна система є мобільною платформою |
pc |
Основною операційною системою є платформа ПК (робоча станція чи ноутбук) |
web |
Основна операційна система є переглядачем інтернету |
nothreads |
Запуск без підтримки потоків |
threads |
Запуск з підтримкою потоків |
web_android |
Host OS — це веб-браузер, що працює на Android |
web_ios |
Host OS — це веб-браузер, що працює на iOS |
web linux bsd |
Хост-ОС — це веб-браузер, що працює на Linux або *BSD |
web_macos |
Host OS — це веб-браузер, що працює на macOS |
web_windows |
Хост-ОС — це веб-браузер, що працює під керуванням Windows |
etc |
Підтримуються текстури, що використовують стиснення ETC1 |
etc2 |
Підтримуються текстури, що використовують стиснення ETC2 |
s3tc |
Підтримуються текстури, що використовують стиснення S3TC (DXT / BC) |
фільм |
Movie Maker mode активний |
shader_baker |
Проєкт було експортовано з увімкненим shader baking (стосується лише експортованого проєкту, а не під час запуску в редакторі) |
dedicated_server |
Проект було експортовано як dedicated server (стосується лише експортованого проекту, а не запуску в редакторі) |
Попередження
За винятком стиснення текстури, тегів функцій web_<platform> і movie, теги функцій за замовчуванням є незмінними. Це означає, що вони не змінюватимуться залежно від умов виконання. Наприклад, OS.has_feature("mobile") поверне false під час запуску проекту, експортованого в Інтернет, на мобільному пристрої.
Щоб перевірити, чи проект, експортований до Інтернету, запущено на мобільному пристрої, скористайтеся OS.has_feature("web_android") або OS.has_feature("web_ios").
Нетипові можливості
У збірку можна додати власні функції; використовуйте відповідне поле в export preset, щоб згенерувати їх:
Примітка
Теги користувацьких функцій використовуються лише під час запуску експортованого проєкту (включно з Розміщення в один клік). Вони не використовуються під час запуску проєкту з редактора, навіть якщо пресет експорту, позначений як Runnable для вашої поточної платформи, має визначені теги користувацьких функцій.
Теги користувацьких функцій також не використовуються у скриптах EditorExportPlugin. Натомість теги функцій у EditorExportPlugin відображатимуть пристрій, на якому наразі працює редактор.
Заміна параметрів проєкту
Функції можна використовувати для перевизначення певних значень конфігурації в Налаштуваннях проекту. Це дозволяє краще налаштувати будь-яку конфігурацію під час збірки.
У наступному прикладі для демонстраційної збірки гри додано інший значок (який був налаштований у спеціальному пресеті експорту, який, у свою чергу, включає лише демо-рівні).
Вибрано бажану конфігурацію, яка фактично копіює її властивості на панель вище (1). Вибрано тег функції "demo_build" (2). Конфігурація додається в налаштування проекту (3).
Після перевизначення додається нове поле для цієї конкретної конфігурації.
Примітка
Використовуючи project settings "override.cfg" functionality (яка не пов'язана з тегами функцій), пам'ятайте, що теги функцій все ще застосовуються. Тому переконайтеся, що ви також перевизначили налаштування за допомогою бажаних тегів, якщо хочете, щоб вони замінили базові параметри проєкту на всіх платформах та конфігураціях.
Заміна за замовчуванням
Вже існує багато параметрів, які за замовчуванням мають заміни; їх можна знайти в багатьох розділах параметрів проєкту.
Врахування тегів функцій під час читання налаштувань проекту
За замовчуванням теги функцій не враховуються під час зчитування налаштувань проекту за допомогою типових підходів (ProjectSettings.get_setting або ProjectSettings.get). Натомість необхідно використовувати ProjectSettings.get_setting_with_override.
Наприклад, з такими налаштуваннями проекту:
[section]
subsection/example = "Release"
subsection/example.debug = "Debug"
Використання ProjectSettings.get_setting("section/subsection/example") поверне "Release" незалежно від того, чи запущено налагоджувальну збірку. З іншого боку, ProjectSettings.get_setting_with_override("section/subsection/example") керуватиметься тегами функцій та поверне "Debug", якщо використовується налагоджувальна збірка.
Налаштування збірки
Теги функцій також можна використовувати для налаштування процесу збірки, написавши спеціальний ExportPlugin. Вони також використовуються для визначення того, яка спільна бібліотека завантажується та експортується в GDExtension.