ResourceSaver

继承: Object

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

描述

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

它使用在引擎中注册的许多ResourceFormatSaver类(内置或从插件)将资源数据保存到基于文本的(例如. ire.iscn)或二进制文件(例如.res.scn)。

方法

void

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

PackedStringArray

get_recognized_extensions(type: Resource)

int

get_resource_id_for_path(path: String, generate: bool = false)

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将使用save()中描述的ResourceFormatSaver。

对于用S3Script编写的ResourceFormatSavers隐式执行此方法(有关详细信息,请参阅ResourceFormatSaver)。


PackedStringArray get_recognized_extensions(type: Resource) 🔗

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


int get_resource_id_for_path(path: String, generate: bool = false) 🔗

返回给定路径的资源ID。如果generatetrue,则如果未找到路径的资源ID,则将生成新的资源ID。如果generatefalse并且未找到路径,则返回ResourceUID.INVALID_ID


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,因为所需的代码仅在编辑器模式下执行。