EditorImportPlugin

Inherits: ResourceImporter < Reference < Object

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

描述

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

EditorImportPlugins通过与特定的文件扩展名和资源类型相关联来工作。参阅 get_recognized_extensionsget_resource_type。其可以选择性地指定一些影响导入过程的导入预置。EditorImportPlugins负责创建资源并将其保存在.import目录中,参阅ProjectSettings.application/config/use_hidden_project_data_directory

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

  1. tool
  2. extends EditorImportPlugin
  3. func get_importer_name():
  4. return "my.special.plugin"
  5. func get_visible_name():
  6. return "Special Mesh"
  7. func get_recognized_extensions():
  8. return ["special", "spec"]
  9. func get_save_extension():
  10. return "mesh"
  11. func get_resource_type():
  12. return "Mesh"
  13. func get_preset_count():
  14. return 1
  15. func get_preset_name(i):
  16. return "Default"
  17. func get_import_options(i):
  18. return [{"name": "my_option", "default_value": false}]
  19. func import(source_file, save_path, options, platform_variants, gen_files):
  20. var file = File.new()
  21. if file.open(source_file, File.READ) != OK:
  22. return FAILED
  23. var mesh = Mesh.new()
  24. # Fill the Mesh with data read in "file", left as an exercise to the reader
  25. var filename = save_path + "." + get_save_extension()
  26. return ResourceSaver.save(filename, mesh)

教程

方法

Array

get_import_options ( int preset ) virtual

int

get_import_order ( ) virtual

String

get_importer_name ( ) virtual

bool

get_option_visibility ( String option, Dictionary options ) virtual

int

get_preset_count ( ) virtual

String

get_preset_name ( int preset ) virtual

float

get_priority ( ) virtual

Array

get_recognized_extensions ( ) virtual

String

get_resource_type ( ) virtual

String

get_save_extension ( ) virtual

String

get_visible_name ( ) virtual

int

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

方法说明

  • Array get_import_options ( int preset ) virtual

获取该索引下预设的选项和默认值。返回一个字典数组,包含以下键名:namedefault_valueproperty_hint(可选)、hint_string(可选)、usage(可选)。


  • int get_import_order ( ) virtual

获取该导入器在导入资源时的运行顺序。具有较低导入顺序的导入器将被首先调用,较高值的将被其后调用。使用这个来确保导入器在依赖项已经被导入后执行。默认的导入顺序是 0,除非被指定的导入器重写。参阅 ImportOrder 了解相关预定义的值。


  • String get_importer_name ( ) virtual

获取导入者的唯一名称。


这个方法可以在满足条件的情况下重写隐藏特定的导入选项。这主要适用于隐藏依赖于其他选项的选项,如果其中一个选项被禁用。例如:

  1. func get_option_visibility(option, options):
  2. # Only show the lossy quality setting if the compression mode is set to "Lossy".
  3. if option == "compress/lossy_quality" and options.has("compress/mode"):
  4. return int(options["compress/mode"]) == COMPRESS_LOSSY
  5. return true

返回true,使所有选项始终可见。


  • int get_preset_count ( ) virtual

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


  • String get_preset_name ( int preset ) virtual

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


  • float get_priority ( ) virtual

获取该插件对识别的扩展的优先级。优先级越高的插件会被优先选择。默认的优先级是1.0


  • Array get_recognized_extensions ( ) virtual

获取与该加载器相关联的文件扩展名列表(不区分大小写),例如 ["obj"]


  • String get_resource_type ( ) virtual

获取与此加载程序关联的Godot资源类型,例如 "Mesh""Animation"


  • String get_save_extension ( ) virtual

获取用于在.import目录中保存此资源的扩展名,参阅ProjectSettings.application/config/use_hidden_project_data_directory


  • String get_visible_name ( ) virtual

获取在导入窗口中显示的名称。你应该选择这个名字作为 “Import as” 的延续,例如 “Import as Special Mesh”。


使用指定的导入选项 optionssource_file 导入到 save_path 中。platform_variantsgen_files 数组将被此函数修改。

这个方法必须被重写才能完成实际的导入工作。参阅本类的描述以了解如何重写该方法。