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...
Файл розширення .gdextension
Вступ
Файл .gdextension у вашому проєкті містить інструкції щодо завантаження GDExtension. Інструкції розділені на окремі розділи. Ця сторінка має надати вам короткий огляд різних доступних вам опцій. Щоб отримати вступ до початку роботи з C++ (godot-cpp), перегляньте GDExtension C++ Example.
Розділ конфігурації
Власність |
Тип |
Опис |
|---|---|---|
символ_запису |
Строка (рядок, текст) |
Назва функції входу для ініціалізації GDExtension. Ця функція повинна бути визначена у файлі |
compatibility_minimum |
Строка (рядок, текст) |
Мінімальна сумісна версія. Це не дозволяє старішим версіям Godot завантажувати розширення, які залежать від функцій новіших версій Godot. Підтримується лише в Godot 4.1 або пізнішої версії |
compatibility_maximum |
Строка (рядок, текст) |
Максимальна сумісна версія. Це запобігає завантаженню розширення новішими версіями Godot. Підтримується лише в Godot 4.3 або пізнішої версії |
перезавантажується |
Логічний |
Перезавантажує розширення після повторної компіляції. Перезавантаження підтримується для прив’язки godot-cpp у Godot 4.2 або пізнішої версії. Інші мовні прив’язки також можуть підтримувати або не підтримувати це. Цей прапорець слід в основному використовувати для розробки або налагодження розширення. |
android_aar_plugin |
Логічний |
GDExtension є частиною v2 плагіна Android. Під час експорту цей прапорець вказуватиме редактору, що рідні спільні бібліотеки GDExtension експортуються двійковими файлами плагіна Android AAR. |
Розділ бібліотек
У цьому розділі ви можете встановити шляхи до скомпільованих двійкових файлів ваших бібліотек GDExtension. Вказавши прапорці функцій, ви можете відфільтрувати, яку версію слід завантажити та експортувати з вашою грою, залежно від того, які прапорці функції активні. Кожен прапор функції має збігатися з прапорами функції Godot або вашими власними прапорами експорту, щоб завантажити їх в експортовану гру. Наприклад, macos.debug означає, що він буде завантажений, якщо Godot має активні прапорці macos і debug. Кожен рядок розділу оцінюється зверху вниз.
Ось приклад того, як це може виглядати:
; A comment line starts with a semicolon. This line is ignored by the engine.
[libraries]
macos.debug = "./bin/libgdexample.macos.template_debug.dylib" ; Inline comments are also allowed.
macos.release = "./bin/libgdexample.macos.template_release.dylib"
windows.debug.x86_32 = "./bin/libgdexample.windows.template_debug.x86_32.dll"
windows.release.x86_32 = "./bin/libgdexample.windows.template_release.x86_32.dll"
windows.debug.x86_64 = "./bin/libgdexample.windows.template_debug.x86_64.dll"
windows.release.x86_64 = "./bin/libgdexample.windows.template_release.x86_64.dll"
linux.debug.x86_64 = "./bin/libgdexample.linux.template_debug.x86_64.so"
linux.release.x86_64 = "./bin/libgdexample.linux.template_release.x86_64.so"
linux.debug.arm64 = "./bin/libgdexample.linux.template_debug.arm64.so"
linux.release.arm64 = "./bin/libgdexample.linux.template_release.arm64.so"
linux.debug.rv64 = "./bin/libgdexample.linux.template_debug.rv64.so"
linux.release.rv64 = "./bin/libgdexample.linux.template_release.rv64.so"
Шляхи можуть бути відносними або абсолютними (починаючи з res://). Рекомендується використовувати відносні шляхи, оскільки вони дозволяють розширенню продовжувати працювати, якщо його встановлено в папку, відмінну від тієї, що вказана в шляху.
Записи зіставляються по порядку, тому, якщо два набори тегів функцій можуть відповідати одній системі, обов’язково розмістіть конкретніші спочатку:
[libraries]
linux.release.editor.x86_64 = "./bin/libgdexample.linux.template_release.x86_64.so"
linux.release.x86_64 = "./bin/libgdexample.linux.noeditor.template_release.x86_64.so"
Ось перелік деяких доступних вбудованих параметрів (щоб дізнатися більше про feature tags):
Ходова система
Прапор |
Опис |
|---|---|
вікна |
операційна система Windows |
macos |
Операційна система Mac |
лінукс |
Операційна система Linux |
bsd |
Операційна система BSD |
linux bsd |
Операційна система Linux або BSD |
android |
операційна система Android |
ios |
операційна система iOS |
web |
Веб-браузер |
Збірки
Прапор |
Опис |
|---|---|
debug |
Збірка з функціями налагодження (збірки редактора завжди мають функції налагодження) |
release |
Оптимізована збірка без функцій налагодження |
editor |
Збірка редактора |
Архітектура
Прапор |
Опис |
|---|---|
подвійний |
збірка подвійної точності |
одинак |
збірка одинарної точності |
x86_64 |
64-розрядна збірка x86 |
arm64 |
64-розрядна збірка ARM |
rv64 |
64-розрядна збірка RISC-V |
risc v |
Збірка RISC-V (будь-яка розрядність) |
wasm 32 |
32-розрядна збірка WebAssembly |
Розділ значків
За замовчуванням Godot використовує піктограму Node у доку сцени для вузлів GDExtension. Спеціальну піктограму можна встановити за посиланням на її назву та шлях до ресурсу файлу SVG.
Приклад:
[icons]
GDExample = "res://icons/gd_example.svg"
Шлях має вказувати на зображення SVG розміром 16×16 пікселів, з двома увімкненими параметрами зображення в панелі імпорту:
Редактор > Масштаб за допомогою функції «Масштаб редактора».
Редактор > Перетворити кольори за допомогою теми редактора.
Увімкнення обох опцій гарантує, що піктограма працюватиме максимально наближено до піктограм стандартного редактора. Для отримання додаткової інформації прочитайте посібник зі creating icons.
Розділ залежностей
У цьому розділі ви встановлюєте шляхи залежностей GDExtension. Це використовується внутрішньо для експорту залежностей під час експорту виконуваного файлу вашої гри. Ви можете встановити, яка залежність завантажується, залежно від прапорців функцій експортованого виконуваного файлу. Крім того, ви можете встановити необов'язковий підкаталог для переміщення ваших залежностей. Якщо шлях не вказано, Godot перемістить бібліотеки в той самий каталог, що й виконуваний файл вашої гри.
Попередження
У macOS необхідно мати спільні бібліотеки всередині папки під назвою Frameworks зі структурою каталогів, як-от ця: Game.app/Contents/Frameworks.
[dependencies]
macos.debug = {
"res://bin/libdependency.macos.template_debug.framework" : "Contents/Frameworks"
}
macos.release = {
"res://bin/libdependency.macos.template_release.framework" : "Contents/Frameworks"
}
windows.debug = {
"res://bin/libdependency.windows.template_debug.x86_64.dll" : "",
"res://bin/libdependency.windows.template_debug.x86_32.dll" : ""
}
windows.release = {
"res://bin/libdependency.windows.template_release.x86_64.dll" : "",
"res://bin/libdependency.windows.template_release.x86_32.dll" : ""
}
linux.debug = {
"res://bin/libdependency.linux.template_debug.x86_64.so" : "",
"res://bin/libdependency.linux.template_debug.arm64.so" : "",
"res://bin/libdependency.linux.template_debug.rv64.so" : ""
}
linux.release = {
"res://bin/libdependency.linux.template_release.x86_64.so" : "",
"res://bin/libdependency.linux.template_release.arm64.so" : "",
"res://bin/libdependency.linux.template_release.rv64.so" : ""
}