Serialization helper utility that supports save, load and encryption.
Open the package manager window (menu: Window > Package Manager)
Select "Add package from git URL...", fill in the pop-up with the following link:
https://github.com/coryleach/UnitySaveLoad.git#1.0.10
Find the manifest.json file in the Packages folder of your project and edit it to look like this:
{
"dependencies": {
"com.gameframe.saveload": "https://github.com/coryleach/UnitySaveLoad.git#1.0.10",
...
},
}
SaveLoadManager is not a singleton. Multiple instances may be used and created.
In the project tab menu select Create->Gameframe->SaveLoad->SaveLoadManager
This will create an instance of a SaveLoadManager asset.
Select the created object and configure options via the inspector.
//Use the Project tab's create menu GameFrame->SaveLoad->SaveLoadManager to create a manager
//You can then use public or serialized fields to reference your save system.
// OR
//Create a Manager at Runtime like this
manager = SaveLoadManager.Create("BaseDirectory","SaveDirectory",SerializationMethod.Default);
//Save object to disk in a file named "MySave.data"
manager.Save("MySave.data",objectToBeSaved);
//Load from disk
//loadedObject will be null if the file does not exist
var loadedObject = manager.Load<SavedObjectType>("MySave.data");
//Delete saved file
manager.DeleteSave("MySave.data");
//Setup a Custom Save/Load Method by passing any object that implements ISerializationMethod
manager.SetCustomSerializationMethod(new MyCustomSerializationMethod());
//Save a ScriptableObject or any object derived from UnityEngine.Object directly to disk
var myScriptableObject = ScriptableObject.CreateInstance<MyScriptableObjectType>();
manager.SaveUnityObject(myScriptableObject,"MyUnityObjectData.dat");
//Loading a UnityEngine.Object type requires an existing object to overwrite
//The following method will overwrite all the serialized fields on myScriptableObject with values loaded from disk
manager.LoadUnityObjectOverwrite(myScriptableObject,"MyUnityObjectData.data");
This package has been tested with version 3.0.2 of the newtonsoft json package. Import the Netwonsoft Json package from the package manager or copy and paste the below into your package manifest.
"com.unity.nuget.newtonsoft-json": "3.0.2"
In player settings add the string 'JSON_DOT_NET' to Scripting Define Symbols.
👤 Cory Leach
- Twitter: @coryleach
- Github: @coryleach
Give a ⭐️ if this project helped you!
This README was generated with ❤️ by Gameframe.Packages