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.

PackedDataContainer

Deprecato: Use @GlobalScope.var_to_bytes() or FileAccess.store_var() instead. To enable data compression, use PackedByteArray.compress() or FileAccess.open_compressed().

Eredita: Resource < RefCounted < Object

Comprime e serializza in modo efficiente Array o Dictionary.

Descrizione

PackedDataContainer può essere utilizzato per memorizzare in modo efficiente i dati da contenitori non tipizzati. I dati sono compressi in byte grezzi e possono essere salvati su file. Solo Array e Dictionary possono essere memorizzati in questo modo.

È possibile recuperare i dati iterando sul contenitore, che funzionerà come se si iterasse sui dati compressi stessi. Se il contenitore compresso è un Dictionary, è possibile recuperare i dati tramite i nomi delle chiavi (solo 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])

Stampa:

key value
lock (0, 0)
another_key 123

I contenitori innestati saranno impacchettati ricorsivamente. Durante un iterazione, saranno restituiti come PackedDataContainerRef.

Metodi

Error

pack(value: Variant)

int

size() const


Descrizioni dei metodi

Error pack(value: Variant) 🔗

Comprime il contenitore specificato in una rappresentazione binaria. value deve essere Array o Dictionary, qualsiasi altro tipo genererà un errore di dati non validi.

Nota: Ulteriori chiamate a questo metodo sovrascriveranno i dati esistenti.


int size() const 🔗

Restituisce la dimensione del contenitore compresso (vedi Array.size() e Dictionary.size()).