You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
110 lines
3.7 KiB
110 lines
3.7 KiB
// 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 |
|
{ |
|
/// <summary> |
|
/// Wrapper class for PlayerPrefs that adds the concept of multiple save slots. |
|
/// Save slots allow you to store multiple player save profiles. |
|
/// </summary> |
|
public class FungusPrefs |
|
{ |
|
/// <summary> |
|
/// Deletes all saved values for all slots. |
|
/// </summary> |
|
public static void DeleteAll() |
|
{ |
|
PlayerPrefs.DeleteAll(); |
|
} |
|
|
|
/// <summary> |
|
/// Removes key and its value from this save slot. |
|
/// </summary> |
|
public static void DeleteKey(int slot, string key) |
|
{ |
|
string slotKey = GetSlotKey(slot, key); |
|
PlayerPrefs.DeleteKey(slotKey); |
|
} |
|
|
|
/// <summary> |
|
/// Returns the float value associated with this key in this save slot, it it exists. |
|
/// </summary> |
|
public static float GetFloat(int slot, string key, float defaultValue = 0f) |
|
{ |
|
string slotKey = GetSlotKey(slot, key); |
|
return PlayerPrefs.GetFloat(slotKey, defaultValue); |
|
} |
|
|
|
/// <summary> |
|
/// Returns the int value associated with this key in this save slot, it it exists. |
|
/// </summary> |
|
public static int GetInt(int slot, string key, int defaultValue = 0) |
|
{ |
|
string slotKey = GetSlotKey(slot, key); |
|
return PlayerPrefs.GetInt(slotKey, defaultValue); |
|
} |
|
|
|
/// <summary> |
|
/// Returns the string value associated with this key in this save slot, it it exists. |
|
/// </summary> |
|
public static string GetString(int slot, string key, string defaultValue = "") |
|
{ |
|
string slotKey = GetSlotKey(slot, key); |
|
return PlayerPrefs.GetString(slotKey, defaultValue); |
|
} |
|
|
|
/// <summary> |
|
/// Returns true if the key exists in this save slot. |
|
/// </summary> |
|
public static bool HasKey(int slot, string key) |
|
{ |
|
string slotKey = GetSlotKey(slot, key); |
|
return PlayerPrefs.HasKey(slotKey); |
|
} |
|
|
|
/// <summary> |
|
/// Writes all modified prefences to disk. |
|
/// </summary> |
|
public static void Save() |
|
{ |
|
PlayerPrefs.Save(); |
|
} |
|
|
|
/// <summary> |
|
/// Sets the value of the preference identified by key for this save slot. |
|
/// </summary> |
|
public static void SetFloat(int slot, string key, float value) |
|
{ |
|
string slotKey = GetSlotKey(slot, key); |
|
PlayerPrefs.SetFloat(slotKey, value); |
|
} |
|
|
|
/// <summary> |
|
/// Sets the value of the preference identified by key for this save slot. |
|
/// </summary> |
|
public static void SetInt(int slot, string key, int value) |
|
{ |
|
string slotKey = GetSlotKey(slot, key); |
|
PlayerPrefs.SetInt(slotKey, value); |
|
} |
|
|
|
/// <summary> |
|
/// Sets the value of the preference identified by key for this save slot. |
|
/// </summary> |
|
public static void SetString(int slot, string key, string value) |
|
{ |
|
string slotKey = GetSlotKey(slot, key); |
|
PlayerPrefs.SetString(slotKey, value); |
|
} |
|
|
|
/// <summary> |
|
/// Returns the combined key used to identify a key within a save slot. |
|
/// </summary> |
|
private static string GetSlotKey(int slot, string key) |
|
{ |
|
return slot.ToString() + ":" + key; |
|
} |
|
} |
|
} |