EditorExportPlugin

Наследует: RefCounted < Object

Скрипт, который выполняется при экспорте проекта.

Описание

EditorExportPlugin автоматически вызываются всякий раз, когда пользователь экспортирует проект. Их наиболее распространенное применение — определение того, какие файлы включаются в экспортируемый проект. Для каждого плагина в начале процесса экспорта вызывается _export_begin(), а затем для каждого экспортируемого файла вызывается _export_file().

Чтобы использовать EditorExportPlugin, сначала зарегистрируйте его с помощью метода EditorPlugin.add_export_plugin().

Обучающие материалы

Методы

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

_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, если этот плагин будет настраивать ресурсы на основе платформы и используемых функций.

При включении будут вызваны _get_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 🔗

Настройте сцену. Если в нее внесены изменения, верните ту же или новую сцену. В противном случае верните null. Если возвращается новая сцена, вы можете избавиться от старой.

Реализация этого метода обязательна, если _begin_customize_scenes() возвращает true.


void _end_customize_resources() virtual 🔗

Это вызывается, когда завершается процесс настройки ресурсов.


void _end_customize_scenes() virtual 🔗

Это вызывается, когда заканчивается процесс настройки сцен.


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

Виртуальный метод, который должен быть переопределен пользователем. Он вызывается при запуске экспорта и предоставляет всю информацию об экспорте. features — список функций для экспорта, is_debugtrue для отладочных сборок, path — целевой путь для экспортированного проекта. flags используется только при запуске готового к запуску профиля, например, при использовании собственного запуска на 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 🔗

Возвращает хэш на основе переданной конфигурации (как для сцен, так и для ресурсов). Это помогает сохранять отдельные кэши для отдельных конфигураций экспорта.

Реализация этого метода требуется, если _begin_customize_resources() возвращает true.


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

Возвращает PackedStringArray дополнительных функций, которые должен иметь этот пресет для заданной platform.


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 🔗

Проверьте требования для заданного option и верните непустую строку предупреждения, если они не выполнены.

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


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

Верните список параметров экспорта, которые можно настроить для этого плагина экспорта.

Каждый элемент в возвращаемом значении — это Dictionary со следующими ключами:

  • option: словарь со структурой, задокументированной Object.get_property_list(), но все ключи являются необязательными.

  • default_value: значение по умолчанию для этого параметра.

  • update_visibility: необязательное логическое значение. Если установлено значение true, предустановка выдаст Object.property_list_changed при изменении параметра.


Dictionary _get_export_options_overrides(platform: EditorExportPlatform) virtual const 🔗

Возвращает Dictionary переопределенных значений для параметров экспорта, которые будут использоваться вместо значений, предоставленных пользователем. Переопределенные параметры будут скрыты из пользовательского интерфейса.

class MyExportPlugin extends EditorExportPlugin:
    func _get_name() -> String:
        return "MyExportPlugin"

    func _supports_platform(platform) -> bool:
        if platform is EditorExportPlatformPC:
            # Работает на всех настольных платформах, включая Windows, MacOS and Linux.
            return true
        return false

    func _get_export_options_overrides(platform) -> Dictionary:
        # Переопределите «Встроить 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 не будет импортирован, поэтому рассмотрите возможность использования _customize_resource() для переназначения импортированных ресурсов.


void add_ios_bundle_file(path: String) 🔗

Устарело: Use add_apple_embedded_platform_bundle_file() instead.

Добавляет файл пакета iOS из указанного path в экспортированный проект.


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) в фазу компоновки в проекте iOS Xcode и встраивает ее в результирующий двоичный файл.

Примечание: Для статических библиотек (*.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(). Пропускает текущий файл, поэтому он не включается в экспорт.