Overview
QuickSave is built on the concept of roots and keys
Roots
Roots map to filenames and hence must not contain characters that are not allowed in filenames
Roots are the top level grouping for a collection of data and are equivalent to filenames
Keys
The same key cannot exist more than once under a root
Keys identify data that is stored under a root, a root can contain many keys
This can be visualised as follows
- Root1
- Key1
- Key2
- Key3
Supported Types
Types must have a parameterless public constructor in order to be deserialised
Primitives and custom objects are supported as long as they have public properties that can be serialised. The following Unity Engine types are known to work, many others probably will as well but haven't been confirmed. The plugin is easily extendable to add support for additional types.
- Bounds
- Color
- Color32
- Matrix4x4
- Quaternion
- Rect
- Sprite
- Texture2D
- Transform
- Vector2
- Vector3
- Vector4
Encryption
Once a root has been encrypted all subsequent reads / writes must specify the same encryption method and password if applicable
Encryption is applied to the whole root rather than individual keys
Compression
Once a root has been compressed all subsequent reads / writes must specify the same compression method
Compression is applied to the whole root rather than individual keys
Save Location
Files are saved by default into the location specified by Application.PersistentDataPath, however this can be changed by setting QuickSaveGlobalSettings.StorageLocation