Теги функцій

Вступ

У Godot є спеціальна система для позначення доступних функцій. Кожна функція представлена у вигляді рядка, який може посилатися на багато чого з наступного:

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

  • Архітектура платформи (64-розрядна, або 32-бітна, x86, або ARM).

  • Тип платформи (настільний, мобільний, веб).

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

  • Збірку debug, або release (debug включає редактор).

  • Проєкт, що працює із редактора, чи "окремого" бінарника.

  • Ще багато речей.

Про особливості можна дізнатися під час виконання з API Singleton, викликом:

OS.has_feature(name)

Типові можливості

Ось список більшості тегів функцій у Godot. Майте на увазі, що вони чутливі до регістру:

Тег функції

Опис

Android

Працює на Android

HTML5

Працює на HTML5

JavaScript

Доступний JavaScript singleton

OSX

Працюємо на macOS

iOS

Працюємо на iOS

UWP

Працюємо у UWP

Windows

Працюємо у Windows

X11

Працює на X11 (Linux/BSD desktop)

Server

Працює на позбавленій керівництва (headless) серверній платформі

debug

Працює у діагностичній збірці (включає редактор)

release

Працюємо у збірці для випуску

editor

Працює в збірці редактора

standalone

Працюємо у збірці без редактора

64

Працює у 64-бітовій збірці (будь-якої архітектури)

32

Працює у 32-бітовій збірці (будь-якої архітектури)

x86_64

Працюємо у 64-бітовій x86 збірці

x86

Працює у 32-бітовій x86 збірці

arm64

Працює у 64-бітовій ARM збірці

arm

Працює у 32-бітовій ARM збірці

mobile

Основна операційна система є мобільною платформою

pc

Основною операційною системою є платформа ПК (робоча станція чи ноутбук)

web

Основна операційна система є переглядачем інтернету

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.

Заміна параметрів проєкту

Функції можна використовувати для перевизначення певних значень конфігурації в Параметрах проєкту. Це дозволяє вам краще налаштувати будь-яку конфігурацію під час створення збірки.

У наступному прикладі для демонстраційної збірки гри додано інший значок (який був налаштований у спеціальному пресеті експорту, який, у свою чергу, включає лише демо-рівні).

../../_images/feature_tags2.png

Після заміни додається нове поле для цієї конкретної конфігурації:

../../_images/feature_tags3.png

Примітка

Використовуючи функцію параметрів проєкту "override.cfg" (яка не пов'язана з тегами функцій), пам'ятайте, що теги функцій все ще застосовуються. Тому переконайтеся, що ви також перевизначили налаштування за допомогою бажаних тегів, якщо хочете, щоб вони замінили базові параметри проєкту на всіх платформах та конфігураціях.

Заміна за замовчуванням

Вже існує багато параметрів, які за замовчуванням мають заміни; їх можна знайти в багатьох розділах параметрів проєкту.

../../_images/feature_tags4.png

Налаштування збірки

Теги функцій також можна використовувати для налаштування процесу збірки, написавши власний ExportPlugin. Вони також використовуються для вказівки, яка спільна бібліотека завантажується та експортується в GDNative.