Getting started
After importing Easy Save from the Asset Store, you can immediately use Easy Save from your scripts and from PlayMaker.
For information on saving and loading without code using Auto Save, see the Auto Save guide.
For information on PlayMaker actions available, see the PlayMaker Actions Overview.
Basic saving and loading
Easy Save stores data as keys and values, much like a Dictionary.
For example, to save an integer to a key named myInt and load it back again, you could do:
1 2 |
ES3.Save("myInt", 123); myInt = ES3.Load("myInt", defaultValue); |
If there’s no data to load, it will return the defaultValue.
If you don’t specify a defaultValue:
- You must provide the type of the data you are loading as the generic parameter.
- You must ensure that there is data to load, for example using ES3.KeyExists:
1 2 |
if(ES3.KeyExists("myInt")) myInt = ES3.Load<int>("myInt"); |
To load a value into an existing reference, use ES3.LoadInto:
1 2 |
// Loads data directly into a Transform, rather than creating a new one. ES3.LoadInto("myTransform", this.transform); |
Note that ES3.LoadInto only works for reference types, not primitive types (e.g. int, string) or value types (e.g. structs).
Saving and loading collections
You can also save and load Arrays, Lists, Dictionaries, Queues, Stacks and HashSets in the same way as you would save and load any other data.
Array
1 2 |
ES3.Save("myArray", myArray); myArray = ES3.Load("myArray", defaultValue); |
List
1 2 |
ES3.Save("myList", myList); myList = ES3.Load("myList", defaultValue); |
Dictionary
1 2 |
ES3.Save("myDictionary", myDictionary); myDictionary = ES3.Load("myDictionary", defaultValue); |
2D Array
1 2 |
ES3.Save("my2DArray", my2DArray); my2DArray = ES3.Load("my2DArray", defaultValue); |
Queue
1 2 |
ES3.Save("myQueue", myQueue); myQueue = ES3.Load("myQueue", defaultValue); |
HashSet
1 2 |
ES3.Save("myHashSet", myHashSet); myHashSet = ES3.Load("myHashSet", defaultValue); |
Stack
1 2 |
ES3.Save("myStack", myStack); myStack = ES3.Load("myStack", defaultValue); |
When to save and load
For most projects it makes sense to load in Start(), and save in OnApplicationQuit(), or OnApplicationPause(true) on mobile.
You can also use buttons to save and load.
Changing the filename or path
The filePath parameter lets you specify where data is saved. The file or folder will be automatically created if it does not exist.
This can be a filename, a relative path, or an absolute path. For more information, see the Paths and Locations guide.
Filename
1 2 |
// Save a value to a file in the default location. ES3.Save("myKey", myValue, "myFile.es3"); |
Relative path
1 2 |
// Save a file to a folder in the default save location. ES3.Save("myKey", myValue, "myFolder/myFile.es3"); |
Absolute path
1 2 |
// Save a value to a file in an absolute folder. ES3.Save("myKey", myValue, "C:/Users/User/Documents/myFile.es3); |
Deleting
Delete a key
1 |
ES3.DeleteKey("myKey", "myFolder/myFile.es3"); |
Delete a file
1 |
ES3.DeleteFile("myFolder/myFile.es3"); |
Delete a directory
1 |
ES3.DeleteDirectory("myFolder/"); |
Changing settings
Change default settings by going to Window > Easy Save 3 > Settings.
Enable settings at runtime by providing an ES3Settings object as a parameter. See the ES3Settings page for more information.
Enable encryption
1 2 3 4 |
var settings = new ES3Settings(ES3.EncryptionType.AES, "myPassword"); ES3.Save("key", data, settings); ES3.Load("key", data, settings); |
Enable compression
1 2 3 4 |
var settings = new ES3Settings(ES3.CompressionType.Gzip); ES3.Save("key", data, settings); ES3.Load("key", data, settings); |
What can be saved and loaded
To see what types are supported, see our Supported Types guide.