ResourceSaver¶
继承: Object
用于将Resource保存到文件系统的单例。
描述¶
用于将资源类型保存到文件系统的单例。
它使用在引擎中注册的许多ResourceFormatSaver类(内置或从插件)将资源数据保存到基于文本的(例如. ire或.iscn)或二进制文件(例如.res或.scn)。
方法¶
void |
add_resource_format_saver(format_saver: ResourceFormatSaver, at_front: bool = false) |
get_resource_id_for_path(path: String, generate: bool = false) |
|
void |
remove_resource_format_saver(format_saver: ResourceFormatSaver) |
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。如果generate为true,则如果未找到路径的资源ID,则将生成新的资源ID。如果generate为false并且未找到路径,则返回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,因为所需的代码仅在编辑器模式下执行。