PackedDataContainer

继承: Resource < RefCounted < Object

有效地打包和序列化ArrayDictionary

描述

PackedDataContainer可用于高效地存储来自无类型容器的数据。数据被打包成原始字节,可以保存到文件中。只有ArrayDictionary可以通过这种方式存储。

您可以通过在容器上迭代来检索数据,这将就像在数据信息包本身上迭代一样工作。如果打包的容器是Dictionary,则可以通过键名(仅限String/StringName)来检索数据。

var data = { "key": "value", "another_key": 123, "lock": Vector2() }
var packed = PackedDataContainer.new()
packed.pack(data)
ResourceSaver.save(packed, "packed_data.res")
var container = load("packed_data.res")
for key in container:
    prints(key, container[key])

输出:

key value
lock (0, 0)
another_key 123

嵌套的容器将被递归打包。在迭代时,它们将作为 PackedDataContainerRef 返回。

方法

Error

pack(value: Variant)

int

size() const


方法说明

Error pack(value: Variant) 🔗

将给定容器打包成二进制表示。value必须是ArrayDictionary,任何其他类型都会导致无效数据错误。

注意:对该方法的后续调用将覆盖存量数据。


int size() const 🔗

返回打包容器的大小(参见Array.size()Dictionary.size())。