void Update() { // When [S] key is pressed: SAVE. if (Input.GetKeyUp(KeyCode.S)) { Debug.Log(">> I'M GOING TO SAVE SOME DATA!" + "\n"); // Some values. equipment = new List <string>(); equipment.Add("Hammer"); equipment.Add("Knife"); equipment.Add("Rope"); initialLocation = new Vector3(101.5f, -30.4f, 22f); coins = new Dictionary <string, int>(); coins.Add("Copper", 1200); coins.Add("Silver", 450); coins.Add("Gold", 300); // Simple data. character = "Conan"; age = 30; strenght = 300.5f; has_sword = true; has_bow = false; myFile.Add("name", character); myFile.Add("age", age); myFile.Add("strenght", strenght); myFile.Add("has_sword", has_sword); myFile.Add("has_bow", has_bow); // GameObject data. myFile.Add("equipment", equipment); myFile.Add("coins", coins); myFile.Add("initialLocation", initialLocation); myFile.Add("player", gameObject.transform); // Class data (serialization). items = new List <Item>(); items.Add(new Item { name = "Gold", quantity = 15000 }); items.Add(new Item { name = "Darts", quantity = 24 }); items.Add(new Item { name = "Potions", quantity = 10 }); myFile.AddSerialized("items", items); // Custom Extension for managing BoxCollider myFile.AddCustom("collider", gameObject.GetComponent <BoxCollider>(), "BoxCollider"); // Save all the collected data. // At the end of the process, stored data is cleared to free memory. myFile.Save(); Debug.Log(">> Data saved in: " + myFile.GetFileName() + "\n"); ShowData(); } // When [L] key is pressed: LOAD. if (Input.GetKeyUp(KeyCode.L)) { // Load data from file. if (myFile.Load()) { Debug.Log(">> I'M GOING TO USE LOADED DATA!" + "\n"); // Simple data. character = myFile.GetString("name"); age = myFile.GetInt("age"); strenght = myFile.GetFloat("strenght"); has_sword = myFile.GetBool("has_sword"); has_bow = myFile.GetBool("has_bow"); // In this case, if 'nickname' key doesn't exist, 'user_1234' string is used. nickname = myFile.GetString("nickname", "user_1234"); // GameObject data. equipment = (List <string>)myFile.GetData("equipment"); coins = (Dictionary <string, int>)myFile.GetData("coins"); initialLocation = myFile.GetUnityVector3("initialLocation"); var tr = myFile.GetUnityTransform("player"); gameObject.transform.position = tr.position; gameObject.transform.rotation = tr.rotation; gameObject.transform.localScale = tr.localScale; // Class data (serialization). items = (List <Item>)myFile.GetDeserialized("items", typeof(List <Item>)); // Custom Extension for managing BoxCollider. var bc = myFile.GetCustom("collider", "BoxCollider"); var thisBoxColllider = gameObject.GetComponent <BoxCollider>(); thisBoxColllider.center = new Vector3 { x = bc["centerX"].ToFloat(), y = bc["centerY"].ToFloat(), z = bc["centerZ"].ToFloat() }; thisBoxColllider.isTrigger = bc["isTrigger"].ToBool(); // Loaded data has been used as needed. // Stored data is manually cleared to free memory. myFile.Dispose(); Debug.Log(">> Data loaded from: " + myFile.GetFileName() + "\n"); ShowData(); } } // When [A] key is pressed: APPEND. if (Input.GetKeyUp(KeyCode.A)) { // Simple data. myFile.Add("nickname", "The Warrior"); myFile.Add("age", 32); // Append this data to the current file content. // 'nickname' key is new, so its value is added to the file. // 'age' key already exists, so its current value is updated with this new one. myFile.Append(); Debug.Log(">> New data added to: " + myFile.GetFileName() + "\n"); Debug.Log(">> Age value updated to 32." + "\n"); Debug.Log(">> Added nickname." + "\n"); } // When [Del] key is pressed: FILE DELETE. if (Input.GetKeyUp(KeyCode.Delete)) { // Delete this file. // This method clears stored data as well. myFile.Delete(); Debug.Log(">> The file has been deleted." + "\n"); } // When [T] key is pressed: SAVING AND LOADING DATA TEST. if (Input.GetKeyUp(KeyCode.T)) { // Perform a test of writing and loading data. // ------------------------------------------- myFile.Delete(); // Add some values to the internal storage for saving and loading test. equipment = new List <string>(); equipment.Add("Hammer"); equipment.Add("Knife"); equipment.Add("Rope"); initialLocation = new Vector3(101.5f, -30.4f, 22f); character = "Conan"; age = 30; strenght = 300.5f; has_sword = true; has_bow = false; items = new List <Item>(); items.Add(new Item { name = "Gold", quantity = 15000 }); items.Add(new Item { name = "Darts", quantity = 24 }); items.Add(new Item { name = "Potions", quantity = 10 }); myFile.Add("name", character); myFile.Add("age", age); myFile.Add("strenght", strenght); myFile.Add("has_sword", has_sword); myFile.Add("has_bow", has_bow); myFile.Add("equipment", equipment); myFile.Add("initialLocation", initialLocation); myFile.Add("player", gameObject.transform); myFile.AddSerialized("items", items); myFile.AddCustom("collider", gameObject.GetComponent <BoxCollider>(), "BoxCollider"); // Test if (myFile.TestDataSaveLoad()) { Debug.Log("<color=green>GOOD! Go to step 2!</color>\n"); } else { Debug.Log("<color=red>OPS! SOMETHING WENT WRONG!</color>\n"); } } }