跳到主要内容

EditorImportPlugin

继承

ResourceImporter

简要描述

在编辑器中注册自定义资源导入器。使用该类来解析任何文件,并将其作为新的资源类型导入。

描述

EditorImportPlugins提供了一种扩展编辑器资源导入功能的方法。使用它们可以从自定义文件导入资源,或为编辑器的现有导入器提供替代方法。使用EditorPlugin.add_import_plugin注册您的EditorPlugin

EditorImportPlugins通过与特定文件扩展名和资源类型相关联来工作。见get_recognized_extensionsget_resource_type。他们可以选择指定一些会影响导入过程的导入预设。EditorImportPlugins负责创建资源并将其保存在.import目录中。

下面是一个示例EditorImportPlugin,它从扩展名为“ .special”或“ .spec”的文件中导入Mesh

tool
extends EditorImportPlugin

func get_importer_name():
return "my.special.plugin"

func get_visible_name():
return "Special Mesh Importer"

func get_recognized_extensions():
return["spec"]

func get_save_extension():
return "mesh"

func get_resource_type():
return "Mesh"

func get_preset_count():
return 1

func get_preset_name(i):
return "Default"

func get_import_options(i):
return["my_option",]

func import(source_file, save_path, options, platform_variants, gen_files):
var file = File.new()
if file.open(source_file, File.READ) != OK:
return FAILED

var mesh = Mesh.new()
# 用从文件中读取的数据填充mesh,作为练习留给读者

var filename = save_path + "." + get_save_extension()
ResourceSaver.save(filename, mesh)
return OK

方法

返回值类型方法名称
Arrayget_import_options(preset: int) virtual
intget_import_order() virtual
Stringget_importer_name() virtual
boolget_option_visibility(option: String, options: Dictionary) virtual
intget_preset_count() virtual
Stringget_preset_name(preset: int) virtual
floatget_priority() virtual
Arrayget_recognized_extensions() virtual
Stringget_resource_type() virtual
Stringget_save_extension() virtual
Stringget_visible_name() virtual
intimport(source_file: String, save_path: String, options: Dictionary, platform_variants: Array, gen_files: Array) virtual

方法说明

  • get_import_options get_import_options(preset: int) virtual

获取此索引处预设的选项和默认值。以下列键值返回字典数组:code]name,default_value,property_hint(可选),hint_string(可选),usage`(可选)。


  • get_import_order get_import_order() virtual

获取导入资源时要运行的此导入程序的顺序。较高的值将在以后调用。使用此方法可确保导入程序在依赖项已导入之后运行。


  • get_importer_name get_importer_name() virtual

获取唯一导入名称。


  • get_option_visibility get_option_visibility(option: String, options: Dictionary) virtual

如果满足条件,可以重写此方法以隐藏特定的导入选项。如果其中一个选项被禁用,这对于隐藏依赖于其他选项的选项很有用。例如:

func get_option_visibility(option, options):
# 仅在压缩模式设置为“ Lossy”时显示有损质量设置
if option == "compress/lossy_quality" and options.has("compress/mode"):
return int(options["compress/mode"]) == COMPRESS_LOSSY

return true

  • get_preset_count get_preset_count() virtual

获取插件定义的初始预设的数量。使用get_import_options以获取预设和默认选项。get_preset_name获得预设的名称。


  • get_preset_name get_preset_name(preset: int) virtual

获取在此索引处预设的选项的名称。


  • get_priority get_priority() virtual

获取已识别扩展名的该插件的优先级。优先级较高的插件将是首选。默认优先级为1.0


  • get_recognized_extensions get_recognized_extensions() virtual

获取与此扩展程序关联的文件扩展名列表(不区分大小写)。例如["obj"]


  • get_resource_type get_resource_type() virtual

获取与此加载器关联的IdeaXR资源类型。例如"Mesh""Animation"


  • get_save_extension get_save_extension() virtual

获取用于将此资源保存在.import目录中的扩展名。


  • get_visible_name get_visible_name() virtual

获取要在导入窗口中显示的名称。


  • import import(source_file: String, save_path: String, options: Dictionary, platform_variants: Array, gen_files: Array) virtual

以指定的options导入source_filesave_pathplatform_variantsgen_files数组会被该函数修改。必须重写此方法才能进行实际的导入工作。有关重写此方法的示例,请参见此类的描述。