PackedDataContainer
继承: Resource
< RefCounted
< Object
Efficiently packs and serializes Array
or Dictionary
.
描述
PackedDataContainer can be used to efficiently store data from untyped containers. The data is packed into raw bytes and can be saved to file. Only Array
and Dictionary
can be stored this way.
You can retrieve the data by iterating on the container, which will work as if iterating on the packed data itself. If the packed container is a Dictionary
, the data can be retrieved by key names (String
/StringName
only).
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])
# Prints:
# key value
# lock (0, 0)
# another_key 123
Nested containers will be packed recursively. While iterating, they will be returned as PackedDataContainerRef
.
方法
方法说明
Packs the given container into a binary representation. The value
must be either Array
or Dictionary
, any other type will result in invalid data error.
Note: Subsequent calls to this method will overwrite the existing data.
Returns the size of the packed container (see Array.size
and Dictionary.size
).
本方法通常需要用户覆盖才能生效。
本方法无副作用,不会修改该实例的任何成员变量。
本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。
本方法用于构造某个类型。
调用本方法无需实例,可直接使用类名进行调用。
本方法描述的是使用本类型作为左操作数的有效运算符。
这个值是由下列位标志构成位掩码的整数。
无返回值。