PackedDataContainer

继承: Resource < RefCounted < Object

ArrayDictionary 进行高效打包和序列化。

描述

PackedDataContainer 可以高效地保存未指定类型的容器中的数据。数据会以原始字节的形式打包,能够保存到文件中。只有 ArrayDictionary 能够这样存储。

你可以通过遍历容器来获取数据,效果和遍历被打包的数据一样。如果打包容器为 Dictionary,则获取的是键名(仅 String/StringName)。

  1. var data = { "key": "value", "another_key": 123, "lock": Vector2() }
  2. var packed = PackedDataContainer.new()
  3. packed.pack(data)
  4. ResourceSaver.save(packed, "packed_data.res")
  1. var container = load("packed_data.res")
  2. for key in container:
  3. prints(key, container[key])
  4. # 输出:
  5. # key value
  6. # lock (0, 0)
  7. # another_key 123

内嵌容器会递归打包。遍历时返回的是 PackedDataContainerRef

方法

Error

pack(value: Variant)

int

size() const


方法说明

Error pack(value: Variant) 🔗

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

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


int size() const 🔗

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