// This code is part of the Fungus library (http://fungusgames.com) maintained by Chris Gregan (http://twitter.com/gofungus). // It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) using UnityEngine; namespace Fungus { /// /// Wrapper class for PlayerPrefs that adds the concept of multiple save slots. /// Save slots allow you to store multiple player save profiles. /// public class FungusPrefs { /// /// Deletes all saved values for all slots. /// public static void DeleteAll() { PlayerPrefs.DeleteAll(); } /// /// Removes key and its value from this save slot. /// public static void DeleteKey(int slot, string key) { string slotKey = GetSlotKey(slot, key); PlayerPrefs.DeleteKey(slotKey); } /// /// Returns the float value associated with this key in this save slot, it it exists. /// public static float GetFloat(int slot, string key, float defaultValue = 0f) { string slotKey = GetSlotKey(slot, key); return PlayerPrefs.GetFloat(slotKey, defaultValue); } /// /// Returns the int value associated with this key in this save slot, it it exists. /// public static int GetInt(int slot, string key, int defaultValue = 0) { string slotKey = GetSlotKey(slot, key); return PlayerPrefs.GetInt(slotKey, defaultValue); } /// /// Returns the string value associated with this key in this save slot, it it exists. /// public static string GetString(int slot, string key, string defaultValue = "") { string slotKey = GetSlotKey(slot, key); return PlayerPrefs.GetString(slotKey, defaultValue); } /// /// Returns true if the key exists in this save slot. /// public static bool HasKey(int slot, string key) { string slotKey = GetSlotKey(slot, key); return PlayerPrefs.HasKey(slotKey); } /// /// Writes all modified prefences to disk. /// public static void Save() { PlayerPrefs.Save(); } /// /// Sets the value of the preference identified by key for this save slot. /// public static void SetFloat(int slot, string key, float value) { string slotKey = GetSlotKey(slot, key); PlayerPrefs.SetFloat(slotKey, value); } /// /// Sets the value of the preference identified by key for this save slot. /// public static void SetInt(int slot, string key, int value) { string slotKey = GetSlotKey(slot, key); PlayerPrefs.SetInt(slotKey, value); } /// /// Sets the value of the preference identified by key for this save slot. /// public static void SetString(int slot, string key, string value) { string slotKey = GetSlotKey(slot, key); PlayerPrefs.SetString(slotKey, value); } /// /// Returns the combined key used to identify a key within a save slot. /// private static string GetSlotKey(int slot, string key) { return slot.ToString() + ":" + key; } } }