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.

EditorExportPlugin

Успадковує: RefCounted < Object

Скрипт, який виконується при експорті проекту.

Опис

EditorExportPlugins are automatically invoked whenever the user exports the project. They can be used to modify scenes and resources during project export based on what Feature Tags are set. For each plugin, _export_begin() is called at the beginning of the export process and then _export_file() is called for each exported file.

Register a EditorExportPlugin by creating a new EditorPlugin and calling its EditorPlugin.add_export_plugin() method.

Посібники

Методи

bool

_begin_customize_resources(platform: EditorExportPlatform, features: PackedStringArray) virtual const

bool

_begin_customize_scenes(platform: EditorExportPlatform, features: PackedStringArray) virtual const

Resource

_customize_resource(resource: Resource, path: String) virtual required

Node

_customize_scene(scene: Node, path: String) virtual required

void

_end_customize_resources() virtual

void

_end_customize_scenes() virtual

void

_end_generate_apple_embedded_project(path: String, will_build_archive: bool) virtual

void

_export_begin(features: PackedStringArray, is_debug: bool, path: String, flags: int) virtual

void

_export_end() virtual

void

_export_file(path: String, type: String, features: PackedStringArray) virtual

PackedStringArray

_get_android_dependencies(platform: EditorExportPlatform, debug: bool) virtual const

PackedStringArray

_get_android_dependencies_maven_repos(platform: EditorExportPlatform, debug: bool) virtual const

PackedStringArray

_get_android_libraries(platform: EditorExportPlatform, debug: bool) virtual const

String

_get_android_manifest_activity_element_contents(platform: EditorExportPlatform, debug: bool) virtual const

String

_get_android_manifest_application_element_contents(platform: EditorExportPlatform, debug: bool) virtual const

String

_get_android_manifest_element_contents(platform: EditorExportPlatform, debug: bool) virtual const

int

_get_customization_configuration_hash() virtual required const

PackedStringArray

_get_export_features(platform: EditorExportPlatform, debug: bool) virtual const

bool

_get_export_option_visibility(platform: EditorExportPlatform, option: String) virtual const

String

_get_export_option_warning(platform: EditorExportPlatform, option: String) virtual const

Array[Dictionary]

_get_export_options(platform: EditorExportPlatform) virtual const

Dictionary

_get_export_options_overrides(platform: EditorExportPlatform) virtual const

String

_get_name() virtual required const

bool

_should_update_export_options(platform: EditorExportPlatform) virtual const

bool

_supports_platform(platform: EditorExportPlatform) virtual const

PackedByteArray

_update_android_prebuilt_manifest(platform: EditorExportPlatform, manifest_data: PackedByteArray) virtual const

void

add_apple_embedded_platform_bundle_file(path: String)

void

add_apple_embedded_platform_cpp_code(code: String)

void

add_apple_embedded_platform_embedded_framework(path: String)

void

add_apple_embedded_platform_framework(path: String)

void

add_apple_embedded_platform_linker_flags(flags: String)

void

add_apple_embedded_platform_plist_content(plist_content: String)

void

add_apple_embedded_platform_project_static_lib(path: String)

void

add_file(path: String, file: PackedByteArray, remap: bool)

void

add_ios_bundle_file(path: String)

void

add_ios_cpp_code(code: String)

void

add_ios_embedded_framework(path: String)

void

add_ios_framework(path: String)

void

add_ios_linker_flags(flags: String)

void

add_ios_plist_content(plist_content: String)

void

add_ios_project_static_lib(path: String)

void

add_macos_plugin_file(path: String)

void

add_shared_object(path: String, tags: PackedStringArray, target: String)

EditorExportPlatform

get_export_platform() const

EditorExportPreset

get_export_preset() const

Variant

get_option(name: StringName) const

void

skip()


Описи методів

bool _begin_customize_resources(platform: EditorExportPlatform, features: PackedStringArray) virtual const 🔗

Повернутися true, якщо цей плагін налаштовує ресурси на основих платформи та використовуваних функцій.

При включенні _customization_configuration_hash() і _customize_resource() будуть викликані і повинні бути реалізовані.


bool _begin_customize_scenes(platform: EditorExportPlatform, features: PackedStringArray) virtual const 🔗

Повертає true, якщо цей плагін налаштовуватиме сцени на основі використовуваної платформи та функцій.

Якщо ввімкнено, _get_customization_configuration_hash() і _customize_scene() будуть викликані та мають бути реалізовані.

Примітка: _customize_scene() буде викликано лише для сцен, які були змінені після останнього експорту.


Resource _customize_resource(resource: Resource, path: String) virtual required 🔗

Налаштувати ресурс. Якщо в нього внесено зміни, поверніть той самий або новий ресурс. В іншому випадку поверніть null. Коли повертається новий ресурс, resource буде замінено копією нового ресурсу.

Аргумент path використовується лише під час налаштування фактичного файлу, інакше це означає, що цей ресурс є частиною іншого і він буде порожнім.

Реалізація цього методу потрібна, якщо _begin_customize_resources() повертає true.

Примітка: Під час налаштування будь-якого з наведених нижче типів і повернення іншого ресурсу не слід пропускати інший ресурс за допомогою skip() у _export_file():


Node _customize_scene(scene: Node, path: String) virtual required 🔗

Customize a scene. If changes are made to it, return the same or a new scene. Otherwise, return null. If a new scene is returned, it is up to you to dispose of the old one.

Implementing this method is required if _begin_customize_scenes() returns true.

Note: To change a variable in your scene, use the @export annotation when declaring it.


void _end_customize_resources() virtual 🔗

Це називається коли процес налаштування ресурсів закінчується.


void _end_customize_scenes() virtual 🔗

Це називається коли процес налаштування для сцени закінчується.


void _end_generate_apple_embedded_project(path: String, will_build_archive: bool) virtual 🔗

This is called after Xcode project generation, but before it is built.

Note: Only supported on iOS and visionOS.


void _export_begin(features: PackedStringArray, is_debug: bool, path: String, flags: int) virtual 🔗

Віртуальний спосіб перевизначення користувачем. Якщо експорт починається і надасть всю інформацію про експорт. features - список особливостей для експорту, is_debug true для збирання сміття, path - це цільовий шлях для експортованого проекту. прапорці використовується тільки при запуску рунного профілю, наприклад, при використанні рідного запуску на Android.


void _export_end() virtual 🔗

Віртуальний спосіб перевизначення користувачем. Зателефоновано при завершенні експорту.


void _export_file(path: String, type: String, features: PackedStringArray) virtual 🔗

Віртуальний спосіб перевизначення користувачем. Зателефоновано для кожного експортованого файлу до _customize_resource() та _customize_scene(). Для визначення файлу можна використовувати аргументи. path - шлях файлу, type - Resource, представлений файлом (наприклад, PackedScene), а features - список особливостей для експорту.

Дзвінки skip() всередині цього зворотного зв'язку зроблять файл не включений в експорт.


PackedStringArray _get_android_dependencies(platform: EditorExportPlatform, debug: bool) virtual const 🔗

Віртуальний метод, який перевизначається користувачем. Викликається для отримання набору залежностей Android, наданих цим плагіном. Кожна повернута залежність Android повинна мати формат віддаленої двійкової залежності Android: org.godot.example:my-plugin:0.0.0

Для отримання додаткової інформації див. Документація Android про залежності.

Примітка: Підтримується лише на Android і вимагає увімкнення EditorExportPlatformAndroid.gradle_build/use_gradle_build.


PackedStringArray _get_android_dependencies_maven_repos(platform: EditorExportPlatform, debug: bool) virtual const 🔗

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

Для отримання додаткової інформації див. Документацію Gradle щодо керування залежностями.

Примітка: Репозиторій Maven від Google та Maven Central вже включено за замовчуванням.

Примітка: Підтримується лише на Android і вимагає увімкнення EditorExportPlatformAndroid.gradle_build/use_gradle_build.


PackedStringArray _get_android_libraries(platform: EditorExportPlatform, debug: bool) virtual const 🔗

Віртуальний метод, який перевизначається користувачем. Викликається для отримання локальних шляхів до файлів архіву бібліотек Android (AAR), наданих цим плагіном.

Примітка: Відносні шляхи мають бути відносно каталогу Godot res://addons/. Наприклад, AAR-файл, розташований у res://addons/hello_world_plugin/HelloWorld.release.aar, можна повернути як абсолютний шлях за допомогою res://addons/hello_world_plugin/HelloWorld.release.aar або відносний шлях за допомогою hello_world_plugin/HelloWorld.release.aar.

Примітка: Підтримується лише на Android і вимагає увімкнення EditorExportPlatformAndroid.gradle_build/use_gradle_build.


String _get_android_manifest_activity_element_contents(platform: EditorExportPlatform, debug: bool) virtual const 🔗

Віртуальний метод, який перевизначається користувачем. Використовується під час експорту для оновлення вмісту елемента activity у згенерованому маніфесті Android.

Примітка: Підтримується лише на Android і вимагає увімкнення EditorExportPlatformAndroid.gradle_build/use_gradle_build.


String _get_android_manifest_application_element_contents(platform: EditorExportPlatform, debug: bool) virtual const 🔗

Віртуальний спосіб перевизначення користувачем. Це використовується при експорті часу, щоб оновити вміст application елемент у створеному Android проявляється.

Примітка: Тільки підтримується на Android і вимагає EditorExportPlatformAndroid.gradle_build/use_gradle_build бути включений.


String _get_android_manifest_element_contents(platform: EditorExportPlatform, debug: bool) virtual const 🔗

Віртуальний спосіб перевизначення користувачем. Це використовується при експорті часу, щоб оновити вміст manifest елемент у створеному Android проявляється.

Примітка: Тільки підтримується на Android і вимагає EditorExportPlatformAndroid.gradle_build/use_gradle_build, щоб бути включеним.


int _get_customization_configuration_hash() virtual required const 🔗

Return a hash based on the configuration passed (for both scenes and resources). This helps keep separate caches for separate export configurations.

Implementing this method is required if _begin_customize_resources() returns true.

Note: _customize_resource() and _customize_scene() will not be called when the EditorExportPlugin script is modified unless this hash changes too.


PackedStringArray _get_export_features(platform: EditorExportPlatform, debug: bool) virtual const 🔗

Повернутися до PackedStringArray додаткових функцій цього пресету, для наданої платформа, повинен мати.


bool _get_export_option_visibility(platform: EditorExportPlatform, option: String) virtual const 🔗

Перевіряє option та повертає видимість для вказаної platform. Реалізація за замовчуванням повертає true для всіх опцій.


String _get_export_option_warning(platform: EditorExportPlatform, option: String) virtual const 🔗

Перевірити вимоги до вказаного параметра і повернути рядок попередження про неоптимізацію, якщо вони не відповідають.

Примітка: Використовуйте get_option() для перевірки значення параметрів експорту.


Array[Dictionary] _get_export_options(platform: EditorExportPlatform) virtual const 🔗

Повернути список варіантів експорту, які можна налаштувати для цього плагіна експорту.

Кожен елемент у поверненні значення є Dictionary з наступними ключами:

option: Словник з структурою, задокументовано method.get_property_list, але всі ключі необов'язково.

default_value: Значення за замовчуванням для цього параметра.

  • update_visibility: Додаткове значення болеана. Якщо встановити до true, то при зміні параметра буде випромінюватись Object.property_list_changed.


Dictionary _get_export_options_overrides(platform: EditorExportPlatform) virtual const 🔗

Повертає словник змінних значень для параметрів експорту, які використовуватимуться замість значень, наданих користувачем. Перевизначені параметри будуть приховані в інтерфейсі користувача.

class MyExportPlugin extends EditorExportPlugin:
    func _get_name() -> String:
        повернути "MyExportPlugin"

    func _supports_platform(платформа) -> bool:
        if platform EditorExportPlatformPC:
            # Працювати на всіх настільних платформах, включаючи Windows, MacOS і Linux.
            return true
        return false

    func _get_export_options_overrides(platform) -> Словник:
        # Перевизначте, щоб «Вставити PCK» завжди було ввімкнено.
        return {
            "binary_format/embed_pck": true,
        }

String _get_name() virtual required const 🔗

Повернення ідентифікатора назви цього плагіна (для ідентифікації майбутнього експортера). Додатки сортуються за назвою до експорту.

Впровадження цього методу необхідно.


bool _should_update_export_options(platform: EditorExportPlatform) virtual const 🔗

Повертає true, якщо результат _get_export_options() змінився, і параметри експорту пресета, що відповідає platform, потрібно оновити.


bool _supports_platform(platform: EditorExportPlatform) virtual const 🔗

Повернути true, якщо плагін підтримує задану platform.


PackedByteArray _update_android_prebuilt_manifest(platform: EditorExportPlatform, manifest_data: PackedByteArray) virtual const 🔗

Надає доступ до попередньо створеного маніфесту Android та дозволяє плагіну змінювати його за потреби.

Розробники цього віртуального методу повинні взяти двійкові дані маніфесту з manifest_data, скопіювати їх, змінити, а потім повернути з модифікаціями.

Якщо модифікації не потрібні, тоді має бути повернуто порожній PackedByteArray.


void add_apple_embedded_platform_bundle_file(path: String) 🔗

Додає файл пакета вбудованої платформи Apple з заданого path до експортованого проєкту.


void add_apple_embedded_platform_cpp_code(code: String) 🔗

Додає код C++ до експорту вбудованої платформи Apple. Остаточний код створюється з коду, доданого кожним активним плагіном експорту.


void add_apple_embedded_platform_embedded_framework(path: String) 🔗

Додає динамічну бібліотеку (*.dylib, *.framework) до фази зв'язування в проекті Xcode вбудованої платформи Apple та вбудовує її в результуючий бінарний файл.

Примітка: Для статичних бібліотек (*.a) це працює так само, як і add_apple_embedded_platform_framework().

Примітка: Цей метод не слід використовувати для системних бібліотек, оскільки вони вже присутні на пристрої.


void add_apple_embedded_platform_framework(path: String) 🔗

Додає статичну бібліотеку (*.a) або динамічну бібліотеку (*.dylib, *.framework) до фази зв'язування з проектом Xcode вбудованої платформи Apple.


void add_apple_embedded_platform_linker_flags(flags: String) 🔗

Додає прапорці компонувальника для експорту вбудованої платформи Apple.


void add_apple_embedded_platform_plist_content(plist_content: String) 🔗

Додає додаткові поля до файлу Info.plist проекту вбудованої платформи Apple.


void add_apple_embedded_platform_project_static_lib(path: String) 🔗

Додає статичну бібліотеку з заданого path до проєкту вбудованої платформи Apple.


void add_file(path: String, file: PackedByteArray, remap: bool) 🔗

Додати файл, який буде експортований. path це віртуальний шлях, який можна використовувати для завантаження файлів, file є бінарними даними файлу.

Після того, як ви назвали всередині _export_file() і remap true, поточний файл не буде експортований, але замість того, щоб перезмащений в цей користувальницький файл. remap ігнорується, коли називається в інших місцях.

file не буде імпортований, тому розглянути використання method_customize_resource для перепланування імпортних ресурсів.


void add_ios_bundle_file(path: String) 🔗

Застаріло: Use add_apple_embedded_platform_bundle_file() instead.

Додає файл пакету iOS з вказаного пам'ячого шляху до експортованого проекту.


void add_ios_cpp_code(code: String) 🔗

Застаріло: Use add_apple_embedded_platform_cpp_code() instead.

Додає код C++ до експорту iOS. Остаточний код створюється з коду, доданого кожним активним плагіном експорту.


void add_ios_embedded_framework(path: String) 🔗

Застаріло: Use add_apple_embedded_platform_embedded_framework() instead.

Додає динамічну бібліотеку (*.dylib, *.framework) до Linking Phase у проекті Xcode для iOS та вбудовує її в результуючий бінарний файл.

Примітка: Для статичних бібліотек (*.a) це працює так само, як і add_apple_embedded_platform_framework().

Примітка: Цей метод не слід використовувати для системних бібліотек, оскільки вони вже присутні на пристрої.


void add_ios_framework(path: String) 🔗

Застаріло: Use add_apple_embedded_platform_framework() instead.

Додає статичну бібліотеку (*.a) або динамічну бібліотеку (*.dylib, *.framework) до фази зв'язування з проектом iOS Xcode.


void add_ios_linker_flags(flags: String) 🔗

Застаріло: Use add_apple_embedded_platform_linker_flags() instead.

Додає прапори для експорту iOS.


void add_ios_plist_content(plist_content: String) 🔗

Застаріло: Use add_apple_embedded_platform_plist_content() instead.

Додає додаткові поля до файлу Info.plist проекту iOS.


void add_ios_project_static_lib(path: String) 🔗

Застаріло: Use add_apple_embedded_platform_project_static_lib() instead.

Додає статичну бібліотеку з заданого path до проєкту iOS.


void add_macos_plugin_file(path: String) 🔗

Додає файл або каталог, що відповідає path до PlugIns каталог додатків macOS.

Примітка: Це корисно тільки для експорту macOS.


void add_shared_object(path: String, tags: PackedStringArray, target: String) 🔗

Додає спільний об'єкт або каталог, що містить лише спільні об'єкти із заданими тегами tags та місцем призначення path.

Примітка: У разі експорту до macOS ці спільні об'єкти буде додано до каталогу Frameworks пакунка програми.

У випадку директорії з кодовим позначенням виникне помилка, якщо ви помістите в директорію об'єкт, який не є кодовим.


EditorExportPlatform get_export_platform() const 🔗

Повертає поточну використану платформу експорту.


EditorExportPreset get_export_preset() const 🔗

Повертає наразі використаний стиль експорту.


Variant get_option(name: StringName) const 🔗

Повернення поточної вартості експорту, що поставляється _get_export_options().


void skip() 🔗

Викликається всередині _export_file(). Пропускає поточний файл, тому він не включається до експорту.