PackedDataContainer¶
继承: Resource < RefCounted < Object
有效地打包和序列化Array或Dictionary。
描述¶
PackedDataContainer可用于高效地存储来自无类型容器的数据。数据被打包成原始字节,可以保存到文件中。只有Array和Dictionary可以通过这种方式存储。
您可以通过在容器上迭代来检索数据,这将就像在数据信息包本身上迭代一样工作。如果打包的容器是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 返回。
方法¶
方法说明¶
将给定容器打包成二进制表示。value必须是Array或Dictionary,任何其他类型都会导致无效数据错误。
注意:对该方法的后续调用将覆盖存量数据。
返回打包容器的大小(参见Array.size()和Dictionary.size())。