Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
PackedDataContainer
Устарело: Use @GlobalScope.var_to_bytes() or FileAccess.store_var() instead. To enable data compression, use PackedByteArray.compress() or FileAccess.open_compressed().
Наследует: 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])
Prints:
key value
lock (0, 0)
another_key 123
Вложенные контейнеры будут упакованы рекурсивно. При итерации они будут возвращены как PackedDataContainerRef.
Методы
size() const |
Описания метода
Упаковывает заданный контейнер в двоичное представление. value должно быть либо Array, либо Dictionary, любой другой тип приведет к ошибке недопустимых данных.
Примечание: Последующие вызовы этого метода перезапишут существующие данные.
Возвращает размер упакованного контейнера (см. Array.size() и Dictionary.size()).