EditorImportPlugin
继承
简要描述
在编辑器中注册自定义资源导入器。使用该类来解析任何文件,并将其作为新的资源类型导入。
描述
EditorImportPlugins提供了一种扩展编辑器资源导入功能的方法。使用它们可以从自定义文件导入资源,或为编辑器的现有导入器提供替代方法。使用EditorPlugin.add_import_plugin注册您的EditorPlugin。
EditorImportPlugins通过与特定文件扩展名和资源类型相关联来工作。见get_recognized_extensions和get_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
方法
返回值类型 | 方法名称 |
---|---|
Array | get_import_options(preset: int) virtual |
int | get_import_order() virtual |
String | get_importer_name() virtual |
bool | get_option_visibility(option: String, options: Dictionary) virtual |
int | get_preset_count() virtual |
String | get_preset_name(preset: int) 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(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_file
到save_path
。platform_variants
和gen_files
数组会被该函数修改。必须重写此方法才能进行实际的导入工作。有关重写此方法的示例,请参见此类的描述。