Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

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 ( Variant value )

int

size ( ) const


方法说明

Error pack ( Variant value )

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

注意:后续再次调用该方法会覆盖已有数据。


int size ( ) const

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