EditorExportPlugin
Скрипт, который выполняется при экспорте проекта.
Скрипт, который выполняется при экспорте проекта.
Плагины EditorExportPlugin автоматически вызываются при каждом экспорте проекта пользователем. Они позволяют изменять сцены и ресурсы во время экспорта проекта в зависимости от заданных тегов Теги функций. Для каждого плагина метод EditorExportPlugin._ExportBegin вызывается в начале процесса экспорта, а затем EditorExportPlugin._ExportFile вызывается для каждого экспортированного файла.
Зарегистрируйте плагин EditorExportPlugin, создав новый плагин EditorPlugin и вызвав его метод EditorPlugin.AddExportPlugin.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
EditorExportPluginКонструктор
public EditorExportPlugin();Методы51
AddAppleEmbeddedPlatformBundleFilevoid
public void AddAppleEmbeddedPlatformBundleFile(string path);Добавляет файл пакета встроенной платформы Apple из указанного path в экспортированный проект.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
AddAppleEmbeddedPlatformCppCodevoid
public void AddAppleEmbeddedPlatformCppCode(string code);Добавляет код C++ к экспорту встроенной платформы Apple. Окончательный код создается из кода, добавленного каждым активным плагином экспорта.
| Имя | Тип | По умолчанию |
|---|---|---|
code | string | — |
AddAppleEmbeddedPlatformEmbeddedFrameworkvoid
public void AddAppleEmbeddedPlatformEmbeddedFramework(string path);Добавляет динамическую библиотеку (*.dylib, .framework) в фазу компоновки в проекте Xcode встроенной платформы Apple и встраивает ее в полученный двоичный файл.
Примечание: Для статических библиотек (.a) это работает так же, как EditorExportPlugin.AddAppleEmbeddedPlatformFramework.
Примечание: Этот метод не следует использовать для системных библиотек, поскольку они уже присутствуют на устройстве.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
AddAppleEmbeddedPlatformFrameworkvoid
public void AddAppleEmbeddedPlatformFramework(string path);Добавляет статическую библиотеку (.a) или динамическую библиотеку (.dylib, *.framework) на этапе компоновки в проект Xcode встраиваемой платформы Apple.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
AddAppleEmbeddedPlatformLinkerFlagsvoid
public void AddAppleEmbeddedPlatformLinkerFlags(string flags);Добавляет флаги компоновщика для экспорта встроенной платформы Apple.
| Имя | Тип | По умолчанию |
|---|---|---|
flags | string | — |
AddAppleEmbeddedPlatformPlistContentvoid
public void AddAppleEmbeddedPlatformPlistContent(string plistContent);Добавляет дополнительные поля в файл Info.plist проекта встроенной платформы Apple.
| Имя | Тип | По умолчанию |
|---|---|---|
plistContent | string | — |
AddAppleEmbeddedPlatformProjectStaticLibvoid
public void AddAppleEmbeddedPlatformProjectStaticLib(string path);Добавляет статическую библиотеку из указанного path в проект встроенной платформы Apple.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
AddAppleEmbeddedPlatformSpmPackage2 перегрузки
public void AddAppleEmbeddedPlatformSpmPackage(string url, string version, ReadOnlySpan<string> products);Добавить пакет Быстрый менеджер пакетов в проект Xcode платформы Apple. url - URL упаковки, version - требование в отношении варианта (например, "1.0") и products - это набор названий продуктов, которые должны быть включены из пакета.
Примечание: Поддержка оказывалась только в связи с ИОС и Знаниями.
| Имя | Тип | По умолчанию |
|---|---|---|
url | string | — |
version | string | — |
products | ReadOnlySpan<string> | — |
public void AddAppleEmbeddedPlatformSpmPackage(string url, string version, string[] products);Добавить пакет Быстрый менеджер пакетов в проект Xcode платформы Apple. url - URL упаковки, version - требование в отношении варианта (например, "1.0") и products - это набор названий продуктов, которые должны быть включены из пакета.
Примечание: Поддержка оказывалась только в связи с ИОС и Знаниями.
| Имя | Тип | По умолчанию |
|---|---|---|
url | string | — |
version | string | — |
products | string[] | — |
AddFile2 перегрузки
public void AddFile(string path, byte[] file, bool remap);Добавляет пользовательский файл для экспорта. path — это виртуальный путь, который можно использовать для загрузки файла, file — это двоичные данные файла.
При вызове внутри EditorExportPlugin._ExportFile и remap — это true, текущий файл не будет экспортирован, а вместо этого будет переназначен на этот пользовательский файл. remap игнорируется при вызове в других местах.
file не будет импортирован, поэтому рассмотрите возможность использования EditorExportPlugin._CustomizeResource для переназначения импортированных ресурсов.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
file | byte[] | — |
remap | bool | — |
public void AddFile(string path, ReadOnlySpan<byte> file, bool remap);Добавляет пользовательский файл для экспорта. path — это виртуальный путь, который можно использовать для загрузки файла, file — это двоичные данные файла.
При вызове внутри EditorExportPlugin._ExportFile и remap — это true, текущий файл не будет экспортирован, а вместо этого будет переназначен на этот пользовательский файл. remap игнорируется при вызове в других местах.
file не будет импортирован, поэтому рассмотрите возможность использования EditorExportPlugin._CustomizeResource для переназначения импортированных ресурсов.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
file | ReadOnlySpan<byte> | — |
remap | bool | — |
AddIosBundleFilevoid · Устарело
public void AddIosBundleFile(string path);Добавляет файл пакета iOS из указанного path в экспортированный проект.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
AddIosCppCodevoid · Устарело
public void AddIosCppCode(string code);Добавляет код C++ в экспорт iOS. Окончательный код создается из кода, добавленного каждым активным плагином экспорта.
| Имя | Тип | По умолчанию |
|---|---|---|
code | string | — |
AddIosEmbeddedFrameworkvoid · Устарело
public void AddIosEmbeddedFramework(string path);Добавляет динамическую библиотеку (*.dylib, .framework) в фазу компоновки в проекте iOS X код и встраивает ее в результирующий двоичный файл.
Примечание: Для статических библиотек (.a) это работает так же, как EditorExportPlugin.AddAppleEmbeddedPlatformFramework.
Примечание: Этот метод не следует использовать для системных библиотек, поскольку они уже присутствуют на устройстве.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
AddIosFrameworkvoid · Устарело
public void AddIosFramework(string path);Добавляет статическую библиотеку (.a) или динамическую библиотеку (.dylib, *.framework) на этапе компоновки в проект iOS X код.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
AddIosLinkerFlagsvoid · Устарело
public void AddIosLinkerFlags(string flags);Добавляет флаги компоновщика для экспорта iOS.
| Имя | Тип | По умолчанию |
|---|---|---|
flags | string | — |
AddIosPlistContentvoid · Устарело
public void AddIosPlistContent(string plistContent);Добавляет дополнительные поля в файл Info.plist проекта iOS.
| Имя | Тип | По умолчанию |
|---|---|---|
plistContent | string | — |
AddIosProjectStaticLibvoid · Устарело
public void AddIosProjectStaticLib(string path);Добавляет статическую библиотеку из указанного path в проект iOS.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
AddMacOSPluginFilevoid
public void AddMacOSPluginFile(string path);Добавляет файл или каталог, соответствующий path, в каталог PlugIns пакета приложений macOS.
Примечание: Это полезно только для экспорта macOS.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
AddSharedObject2 перегрузки
public void AddSharedObject(string path, ReadOnlySpan<string> tags, string target);Добавляет общий объект или каталог, содержащий только общие объекты с заданными tags и назначением path.
Примечание: В случае экспорта macOS эти общие объекты будут добавлены в каталог Frameworks пакета приложения.
В случае кода каталога возникнет ошибка, если вы поместите некодовый объект в каталог.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
tags | ReadOnlySpan<string> | — |
target | string | — |
GetExportPlatformEditorExportPlatform
public EditorExportPlatform GetExportPlatform();Возвращает используемую в данный момент экспортную платформу.
EditorExportPlatformGetExportPresetEditorExportPreset
public EditorExportPreset GetExportPreset();Возвращает текущий используемый пресет экспорта.
EditorExportPresetGetOptionVariant
public Variant GetOption(StringName name);Возвращает текущее значение параметра экспорта, предоставленного EditorExportPlugin._GetExportOptions.
| Имя | Тип | По умолчанию |
|---|---|---|
name | StringName | — |
VariantSkipvoid
public void Skip();Вызывается внутри EditorExportPlugin._ExportFile. Пропускает текущий файл, поэтому он не включается в экспорт.
_BeginCustomizeResourcesbool
public virtual bool _BeginCustomizeResources(EditorExportPlatform platform, string[] features);Верните true, если этот плагин будет настраивать ресурсы на основе платформы и используемых функций.
При включении будут вызваны EditorExportPlugin._GetCustomizationConfigurationHash и EditorExportPlugin._CustomizeResource, которые должны быть реализованы.
| Имя | Тип | По умолчанию |
|---|---|---|
platform | EditorExportPlatform | — |
features | string[] | — |
bool_BeginCustomizeScenesbool
public virtual bool _BeginCustomizeScenes(EditorExportPlatform platform, string[] features);Верните true, если этот плагин будет настраивать сцены на основе платформы и используемых функций.
При включении будут вызваны EditorExportPlugin._GetCustomizationConfigurationHash и EditorExportPlugin._CustomizeScene, которые должны быть реализованы.
Примечание: EditorExportPlugin._CustomizeScene будет вызван только для сцен, которые были изменены с момента последнего экспорта.
| Имя | Тип | По умолчанию |
|---|---|---|
platform | EditorExportPlatform | — |
features | string[] | — |
bool_CustomizeResourceResource
public virtual Resource _CustomizeResource(Resource resource, string path);Настройте ресурс. Если в него внесены изменения, верните тот же или новый ресурс. В противном случае верните null. При возврате нового ресурса resource будет заменен копией нового ресурса.
Аргумент path используется только при настройке фактического файла, в противном случае это означает, что этот ресурс является частью другого и будет пустым.
Реализация этого метода требуется, если EditorExportPlugin._BeginCustomizeResources возвращает true.
Примечание: При настройке любого из следующих типов и возврате другого ресурса другой ресурс не должен быть пропущен с помощью EditorExportPlugin.Skip в EditorExportPlugin._ExportFile:
AtlasTextureCompressedCubemapCompressedCubemapArrayCompressedTexture2DCompressedTexture2DArrayCompressedTexture3D
| Имя | Тип | По умолчанию |
|---|---|---|
resource | Resource | — |
path | string | — |
Resource_CustomizeSceneEntity
public virtual Entity _CustomizeScene(Entity scene, string path);Настройте сцену. Если в неё внесены изменения, верните ту же самую или новую сцену. В противном случае верните null. Если возвращается новая сцена, вы должны самостоятельно удалить старую.
Реализация этого метода необходима, если EditorExportPlugin._BeginCustomizeScenes возвращает true.
Примечание: Чтобы изменить переменную в вашей сцене, используйте аннотацию @export при её объявлении.
| Имя | Тип | По умолчанию |
|---|---|---|
scene | Entity | — |
path | string | — |
Entity_EndCustomizeResourcesvoid
public virtual void _EndCustomizeResources();Это вызывается, когда завершается процесс настройки ресурсов.
_EndCustomizeScenesvoid
public virtual void _EndCustomizeScenes();Это вызывается, когда заканчивается процесс настройки сцен.
_EndGenerateAppleEmbeddedProjectvoid
public virtual void _EndGenerateAppleEmbeddedProject(string path, bool willBuildArchive);Эта команда вызывается после генерации проекта Xcode, но до его сборки. Примечание: Поддерживается только на iOS и visionOS.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
willBuildArchive | bool | — |
_ExportBeginvoid
public virtual void _ExportBegin(string[] features, bool isDebug, string path, uint flags);Виртуальный метод, который должен быть переопределен пользователем. Он вызывается при запуске экспорта и предоставляет всю информацию об экспорте. features — список функций для экспорта, is_debug — true для отладочных сборок, path — целевой путь для экспортированного проекта. flags используется только при запуске готового к запуску профиля, например, при использовании собственного запуска на Android.
| Имя | Тип | По умолчанию |
|---|---|---|
features | string[] | — |
isDebug | bool | — |
path | string | — |
flags | uint | — |
_ExportEndvoid
public virtual void _ExportEnd();Виртуальный метод, который должен быть переопределен пользователем. Вызывается после завершения экспорта.
_ExportFilevoid
public virtual void _ExportFile(string path, string type, string[] features);Виртуальный метод, который должен быть переопределен пользователем. Вызывается для каждого экспортированного файла перед EditorExportPlugin._CustomizeResource и EditorExportPlugin._CustomizeScene. Аргументы могут использоваться для идентификации файла. path — это путь к файлу, type — это Resource, представленный файлом (например, PackedEntity), а features — это список функций для экспорта.
Вызов EditorExportPlugin.Skip внутри этого обратного вызова сделает файл не включенным в экспорт.
| Имя | Тип | По умолчанию |
|---|---|---|
path | string | — |
type | string | — |
features | string[] | — |
_GetAndroidDependenciesstring[]
public virtual string[] _GetAndroidDependencies(EditorExportPlatform platform, bool debug);Виртуальный метод, который должен быть переопределен пользователем. Он вызывается для получения набора зависимостей Android, предоставляемых этим плагином. Каждая возвращаемая зависимость Android должна иметь формат удаленной двоичной зависимости Android: org.reckfell.example:my-plugin:0.0.0
Для получения дополнительной информации см. документацию Android по зависимостям.
Примечание: Поддерживается только на Android и требует включения EditorExportPlatformAndroid.gradle_build/use_gradle_build.
#######get_android_dependes_maven_ repos
| Имя | Тип | По умолчанию |
|---|---|---|
platform | EditorExportPlatform | — |
debug | bool | — |
string[]_GetAndroidDependenciesMavenReposstring[]
public virtual string[] _GetAndroidDependenciesMavenRepos(EditorExportPlatform platform, bool debug);Виртуальный метод, который должен быть переопределен пользователем. Он вызывается для получения URL-адресов репозиториев Maven для набора зависимостей Android, предоставляемых этим плагином.
Для получения дополнительной информации см. документацию Gradle по управлению зависимостями.
Примечание: Репозиторий Maven от Google и репозиторий Центр мэйвен уже включены по умолчанию.
Примечание: Поддерживается только на Android и требует включения EditorExportPlatformAndroid.gradle_build/use_gradle_build.
| Имя | Тип | По умолчанию |
|---|---|---|
platform | EditorExportPlatform | — |
debug | bool | — |
string[]_GetAndroidLibrariesstring[]
public virtual string[] _GetAndroidLibraries(EditorExportPlatform platform, bool debug);Виртуальный метод, который должен быть переопределен пользователем. Он вызывается для получения локальных путей к файлам архива библиотек Android (AAR), предоставляемым этим плагином.
Примечание: Относительные пути должны быть относительными к каталогу Reckfell asset://addons/. Например, файл AAR, расположенный в asset://addons/hello_world_plugin/HelloWorld.release.aar, может быть возвращен как абсолютный путь с помощью asset://addons/hello_world_plugin/HelloWorld.release.aar или относительный путь с помощью hello_world_plugin/HelloWorld.release.aar.
Примечание: Поддерживается только на Android и требует включения EditorExportPlatformAndroid.gradle_build/use_gradle_build.
#######get_android_manifest_activity_elect_contents
| Имя | Тип | По умолчанию |
|---|---|---|
platform | EditorExportPlatform | — |
debug | bool | — |
string[]_GetAndroidManifestActivityElementContentsstring
public virtual string _GetAndroidManifestActivityElementContents(EditorExportPlatform platform, bool debug);Виртуальный метод, который должен быть переопределен пользователем. Используется во время экспорта для обновления содержимого элемента activity в сгенерированном манифесте Android.
Примечание: Поддерживается только на Android и требует включения EditorExportPlatformAndroid.gradle_build/use_gradle_build.
#######get_android_manifest_Application_element_contents
| Имя | Тип | По умолчанию |
|---|---|---|
platform | EditorExportPlatform | — |
debug | bool | — |
string_GetAndroidManifestApplicationElementContentsstring
public virtual string _GetAndroidManifestApplicationElementContents(EditorExportPlatform platform, bool debug);Виртуальный метод, который должен быть переопределен пользователем. Используется во время экспорта для обновления содержимого элемента application в сгенерированном манифесте Android.
Примечание: Поддерживается только на Android и требует включения EditorExportPlatformAndroid.gradle_build/use_gradle_build.
#######get_android_manifest_element_содержание
| Имя | Тип | По умолчанию |
|---|---|---|
platform | EditorExportPlatform | — |
debug | bool | — |
string_GetAndroidManifestElementContentsstring
public virtual string _GetAndroidManifestElementContents(EditorExportPlatform platform, bool debug);Виртуальный метод, который должен быть переопределен пользователем. Используется во время экспорта для обновления содержимого элемента manifest в сгенерированном манифесте Android.
Примечание: Поддерживается только на Android и требует включения EditorExportPlatformAndroid.gradle_build/use_gradle_build.
####get_customization_configuration hash
| Имя | Тип | По умолчанию |
|---|---|---|
platform | EditorExportPlatform | — |
debug | bool | — |
string_GetCustomizationConfigurationHashulong
public virtual ulong _GetCustomizationConfigurationHash();Возвращает хеш на основе переданной конфигурации (как для сцен, так и для ресурсов). Это помогает поддерживать отдельные кэши для разных конфигураций экспорта.
Реализация этого метода необходима, если EditorExportPlugin._BeginCustomizeResources возвращает true.
Примечание: EditorExportPlugin._CustomizeResource и EditorExportPlugin._CustomizeScene не будут вызываться при изменении скрипта EditorExportPlugin, если этот хеш также не изменится.
######## экспорт_виды
ulong_GetExportFeaturesstring[]
public virtual string[] _GetExportFeatures(EditorExportPlatform platform, bool debug);Возвращает string[] дополнительных функций, которые должен иметь этот пресет для заданной platform.
######get_Export_option_reparation_beak
| Имя | Тип | По умолчанию |
|---|---|---|
platform | EditorExportPlatform | — |
debug | bool | — |
string[]_GetExportOptionVisibilitybool
public virtual bool _GetExportOptionVisibility(EditorExportPlatform platform, string option);Проверяет option и возвращает видимость для указанной platform. Реализация по умолчанию возвращает true для всех опций.
#######get_Export_option_requertion_
| Имя | Тип | По умолчанию |
|---|---|---|
platform | EditorExportPlatform | — |
option | string | — |
bool_GetExportOptionWarningstring
public virtual string _GetExportOptionWarning(EditorExportPlatform platform, string option);Проверьте требования для заданного option и верните непустую строку предупреждения, если они не выполнены.
Примечание: Используйте EditorExportPlugin.GetOption для проверки значения параметров экспорта.
| Имя | Тип | По умолчанию |
|---|---|---|
platform | EditorExportPlatform | — |
option | string | — |
string_GetExportOptionsReckfell.Collections.Array<Reckfell.Collections.Dictionary>
public virtual Reckfell.Collections.Array<Reckfell.Collections.Dictionary> _GetExportOptions(EditorExportPlatform platform);Верните список параметров экспорта, которые можно настроить для этого плагина экспорта.
Каждый элемент в возвращаемом значении — это Reckfell.Collections.Dictionary со следующими ключами:
option: словарь со структурой, задокументированнойReckfellObject.GetPropertyList, но все ключи являются необязательными.default_value: значение по умолчанию для этого параметра.update_visibility: необязательное логическое значение. Если установлено значениеtrue, предустановка выдастReckfellObject.PropertyListChangedпри изменении параметра.
####### экспорт_варианты_
| Имя | Тип | По умолчанию |
|---|---|---|
platform | EditorExportPlatform | — |
Reckfell.Collections.Array<Reckfell.Collections.Dictionary>_GetExportOptionsOverridesReckfell.Collections.Dictionary
public virtual Reckfell.Collections.Dictionary _GetExportOptionsOverrides(EditorExportPlatform platform);Возвращает Reckfell.Collections.Dictionary переопределенных значений для параметров экспорта, которые будут использоваться вместо значений, предоставленных пользователем. Переопределенные параметры будут скрыты из пользовательского интерфейса.
| Имя | Тип | По умолчанию |
|---|---|---|
platform | EditorExportPlatform | — |
Reckfell.Collections.Dictionary_GetNamestring
public virtual string _GetName();Верните идентификатор имени этого плагина (для будущей идентификации экспортером). Плагины сортируются по имени перед экспортом. Требуется реализация этого метода.
string_ShouldUpdateExportOptionsbool
public virtual bool _ShouldUpdateExportOptions(EditorExportPlatform platform);Верните true, если результат EditorExportPlugin._GetExportOptions изменился и параметры экспорта предустановки, соответствующей platform, должны быть обновлены.
| Имя | Тип | По умолчанию |
|---|---|---|
platform | EditorExportPlatform | — |
bool_SupportsPlatformbool
public virtual bool _SupportsPlatform(EditorExportPlatform platform);Верните true, если плагин поддерживает указанную platform.
###_обновленный_android_выстроенный_манифест
| Имя | Тип | По умолчанию |
|---|---|---|
platform | EditorExportPlatform | — |
bool_UpdateAndroidPrebuiltManifestbyte[]
public virtual byte[] _UpdateAndroidPrebuiltManifest(EditorExportPlatform platform, byte[] manifestData);Предоставьте доступ к предварительно созданному манифесту Android и позвольте плагину изменять его при необходимости.
Разработчики этого виртуального метода должны взять двоичные данные манифеста из manifest_data, скопировать их, изменить и затем вернуть с изменениями.
Если изменения не требуются, то следует вернуть пустой byte[].
| Имя | Тип | По умолчанию |
|---|---|---|
platform | EditorExportPlatform | — |
manifestData | byte[] | — |
byte[]