EditorExportPlugin
Наследует: RefCounted < Object
Скрипт, который выполняется при экспорте проекта.
Описание
EditorExportPlugin автоматически вызываются всякий раз, когда пользователь экспортирует проект. Их наиболее распространенное применение — определение того, какие файлы включаются в экспортируемый проект. Для каждого плагина в начале процесса экспорта вызывается _export_begin(), а затем для каждого экспортируемого файла вызывается _export_file().
Чтобы использовать EditorExportPlugin, сначала зарегистрируйте его с помощью метода 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.
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_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.
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(). Пропускает текущий файл, поэтому он не включается в экспорт.