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...
EditorExportPlugin
Наследует: RefCounted < Object
Скрипт, который выполняется при экспорте проекта.
Описание
Плагины EditorExportPlugin автоматически вызываются при каждом экспорте проекта пользователем. Они позволяют изменять сцены и ресурсы во время экспорта проекта в зависимости от заданных тегов Feature Tags. Для каждого плагина метод _export_begin() вызывается в начале процесса экспорта, а затем _export_file() вызывается для каждого экспортированного файла.
Зарегистрируйте плагин EditorExportPlugin, создав новый плагин EditorPlugin и вызвав его метод EditorPlugin.add_export_plugin().
Обучающие материалы
Методы
Описания метода
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.
Примечание: Чтобы изменить переменную в вашей сцене, используйте аннотацию @export при её объявлении.
void _end_customize_resources() virtual 🔗
Это вызывается, когда завершается процесс настройки ресурсов.
void _end_customize_scenes() virtual 🔗
Это вызывается, когда заканчивается процесс настройки сцен.
void _end_generate_apple_embedded_project(path: String, will_build_archive: bool) virtual 🔗
Эта команда вызывается после генерации проекта Xcode, но до его сборки.
Примечание: Поддерживается только на iOS и visionOS.
void _export_begin(features: PackedStringArray, is_debug: bool, path: String, flags: int) virtual 🔗
Виртуальный метод, который должен быть переопределен пользователем. Он вызывается при запуске экспорта и предоставляет всю информацию об экспорте. features — список функций для экспорта, is_debug — true для отладочных сборок, 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.
Примечание: _customize_resource() и _customize_scene() не будут вызываться при изменении скрипта EditorExportPlugin, если этот хеш также не изменится.
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.
Добавляет общий объект или каталог, содержащий только общие объекты с заданными 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(). Пропускает текущий файл, поэтому он не включается в экспорт.