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()).