ResourceSaver

继承: Object

用于将 Resource 保存到文件系统的单例。

描述

用于将资源类型保存到文件系统的单例。

它会使用在引擎中注册的(内置或插件)ResourceFormatSaver 将资源数据保存为文本文件(如 .tres.tscn)或二进制文件(如 .res.scn)。

方法

void

add_resource_format_saver(format_saver: ResourceFormatSaver, at_front: bool = false)

PackedStringArray

get_recognized_extensions(type: Resource)

void

remove_resource_format_saver(format_saver: ResourceFormatSaver)

Error

save(resource: Resource, path: String = “”, flags: BitField[SaverFlags] = 0)


枚举

flags SaverFlags: 🔗

SaverFlags FLAG_NONE = 0

没有资源保存选项。

SaverFlags FLAG_RELATIVE_PATHS = 1

用相对于使用该资源的场景的路径来保存该资源。

SaverFlags FLAG_BUNDLE_RESOURCES = 2

捆绑外部资源。

SaverFlags FLAG_CHANGE_PATH = 4

更改已保存资源的 Resource.resource_path 以匹配其新位置。

SaverFlags FLAG_OMIT_EDITOR_PROPERTIES = 8

不要保存编辑器特定的元数据(由其 __editor 前缀标识)。

SaverFlags FLAG_SAVE_BIG_ENDIAN = 16

保存为大端序(见 FileAccess.big_endian)。

SaverFlags FLAG_COMPRESS = 32

在保存时使用 FileAccess.COMPRESSION_ZSTD 压缩资源。仅适用于二进制资源类型。

SaverFlags FLAG_REPLACE_SUBRESOURCE_PATHS = 64

接管保存的子资源的路径(见 Resource.take_over_path)。


方法说明

void add_resource_format_saver(format_saver: ResourceFormatSaver, at_front: bool = false) 🔗

注册一个新的 ResourceFormatSaver。 ResourceSaver 将使用 ResourceFormatSaver,如 save 中所述。

对于用 GDScript 编写的 ResourceFormatSaver,此方法将隐式执行(详情见 ResourceFormatSaver)。


PackedStringArray get_recognized_extensions(type: Resource) 🔗

返回可用于保存给定类型的资源的扩展列表。


void remove_resource_format_saver(format_saver: ResourceFormatSaver) 🔗

取消注册给定的 ResourceFormatSaver


Error save(resource: Resource, path: String = “”, flags: BitField[SaverFlags] = 0) 🔗

使用识别资源对象的 ResourceFormatSaver 将资源保存到给定路径。如果 path 为空,则 ResourceSaver 将尝试使用 Resource.resource_path

可以指定 flags 位掩码以使用 SaverFlags 标志自定义保存行为。

成功时返回 @GlobalScope.OK

注意:项目正运行时,任何生成的与资源关联的 UID 都不会被保存,因为所需的代码仅在编辑器模式下执行。