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])
Print:
key value
lock (0, 0)
another_key 123
Вкладені контейнери будуть упаковані рекурсивно. Під час ітерації вони повертатимуться як PackedDataContainerRef.
Методи
size() const |
Описи методів
Пакети даної ємності в бінарне представництво. Вартість параметра повинна бути або Array або Dictionary, будь-який інший тип призведе до недійсної помилки даних.
Примітка: Підсумкові дзвінки до цього способу перезаписати існуючі дані.
Повертає розмір упакованого контейнера (див. Array.size() та Dictionary.size()).