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

Item

_customize_scene(scene: Item, path: String) virtual

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 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 const

bool

_should_update_export_options(platform: EditorExportPlatform) virtual const

bool

_supports_platform(platform: EditorExportPlatform) virtual const

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 🔗

自定义资源。如果对其进行了更改,则返回相同或新的资源。否则,返回null。当返回新资源时,resource将替换为新资源的副本。

path参数仅在自定义实际文件时使用,否则这意味着该资源是另一个资源的一部分并且它将为空。

如果_begin_customize_resources()返回true,则需要实现此方法。

注意:自定义以下任何类型并返回另一个资源时,不应使用_export_file()中的skip()跳过另一个资源:


Item _customize_scene(scene: Item, path: String) virtual 🔗

自定义场景。如果对其进行了更改,则返回相同或新场景。否则,返回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是调试构建的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. i3d.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 🔗

要被用户覆盖的虚拟方法。调用它来检索此插件提供的一组Android依赖项的Maven存储库的URL。

有关详细信息,请参阅Gradle文档依赖管理

注意:默认情况下,Google的Maven存储库和Maven Central存储库已包含在内。

注意:仅在Android上受支持,并且需要启用EditorExportPlatformAndroid.gradle_build/use_gradle_build


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

要被用户覆盖的虚拟方法。调用它来检索此插件提供的Android库存档(AAR)文件的本地路径。

注意:相对路径必须相对于i3D的res://addons/目录。例如,位于res://addons/hello_world_plugin/HelloWorld.释放. aar下的AAR文件可以使用res://addons/hello_world_plugin/HelloWorld.释放.aar作为绝对路径返回,也可以使用hello_world_plugin/HelloWorld.释放.aar作为相对路径返回。

注意:仅在Android上受支持,并且需要启用EditorExportPlatformAndroid.gradle_build/use_gradle_build


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

要被用户覆盖的虚拟方法。这在导出时用于更新生成的Android清单中的active元素的内容。

注意:仅在Android上受支持,并且需要启用EditorExportPlatformAndroid.gradle_build/use_gradle_build


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

要被用户覆盖的虚拟方法。这在导出时用于更新生成的Android清单中的application元素的内容。

注意:仅在Android上受支持,并且需要启用EditorExportPlatformAndroid.gradle_build/use_gradle_build


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

要被用户覆盖的虚拟方法。这在导出时用于更新生成的Android清单中的清单元素的内容。

注意:仅在Android上受支持,并且需要启用EditorExportPlatformAndroid.gradle_build/use_gradle_build


int _get_customization_configuration_hash() virtual const 🔗

根据传递的配置(对于场景和资源)返回哈希值。这有助于为单独的导出配置保留单独的缓存。

如果_begin_customize_resources()返回true,则需要实现此方法。


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

返回此预设对于给定platform应该具有的附加功能的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 🔗

检查给定option的要求,如果不满足,则返回非空警告字符串。

注意:使用get_option()检查导出选项的值。


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

返回可以为此导出插件配置的导出选项列表。

返回值中的每个元素都是一个具有以下键的Dictionary

-选项:结构由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 和 Linux 在内的所有桌面平台上运行。
            return true
        return false

    func _get_export_options_overrides(platform) -> Dictionary:
        # 将“嵌入 PCK”选项更改为始终启用状态。
        return {
            "binary_format/embed_pck": true,
        }

String _get_name() virtual const 🔗

返回此插件的名称标识符(供导出者将来识别)。插件在导出前按名称排序。

需要实现此方法。


bool _should_update_export_options(platform: EditorExportPlatform) virtual const 🔗

返回true,如果_get_export_options()的结果发生了变化,并且platform对应的预设导出选项应该更新。


bool _supports_platform(platform: EditorExportPlatform) virtual const 🔗

如果插件支持给定的platform,则返回true


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

添加要导出的自定义文件。path是可用于加载文件的虚拟路径,file是文件的二进制数据。

当在_export_file()中调用并且remaptrue时,当前文件将不会被导出,而是重新映射到这个自定义文件中。

file不会被导入,所以考虑使用_customize_resource()重新映射导入的资源。


void add_ios_bundle_file(path: String) 🔗

将给定path中的iOS包文件添加到导出的项目中。


void add_ios_cpp_code(code: String) 🔗

将C++代码添加到iOS导出。最终代码是根据每个活动导出插件附加的代码创建的。


void add_ios_embedded_framework(path: String) 🔗

将动态库(*. dylib,*.Framework)添加到iOS的Xcode项目中的链接阶段,并将其嵌入到生成的二进制文件中。

注意:对于静态库(*. a)的工作方式与add_ios_framework()相同。

注意:此方法不应用于系统库,因为它们已经存在于设备上。


void add_ios_framework(path: String) 🔗

将静态库(*. a)或动态库(*.dylib、*.Framework)添加到iOS的Xcode项目中的链接阶段。


void add_ios_linker_flags(flags: String) 🔗

为iOS导出添加链接器标志。


void add_ios_plist_content(plist_content: String) 🔗

为iOS属性列表文件添加内容。


void add_ios_project_static_lib(path: String) 🔗

将给定path中的静态库添加到iOS项目。


void add_macos_plugin_file(path: String) 🔗

将文件或目录匹配path添加到macOS应用程序包的PlugIns目录。

注意:这仅对macOS导出有用。


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

添加共享对象或仅包含具有给定tags和目标path的共享对象的目录。

注意:在macOS导出的情况下,这些共享对象将被添加到app bundle的FraFramework目录中。

在目录的情况下,如果您将非代码对象放在目录中,则代码符号将出错。


EditorExportPlatform get_export_platform() const 🔗

返回当前使用的导出平台。


EditorExportPreset get_export_preset() const 🔗

返回当前使用的导出预设。


Variant get_option(name: StringName) const 🔗

返回_get_export_options()提供的导出选项的当前值。


void skip() 🔗

_export_file()内部调用。跳过当前文件,因此它不包含在导出中。