Unity 本地数据持久化之 PlayerPrefs
在 Unity 中,可以使用 PlayerPrefs 类来进行客户端本地数据存储操作!
静态函数
PlayerPrefs 类包含以下静态函数:
public static void SetInt (string key, int value);
// 设置由 key 键确定的整数值
public static void SetFloat (string key, float value);
// 设置由 key 键确定的浮点数值
public static void SetString (string key, string value);
// 设置由 key 键确定的字符串值
public static int GetInt (string key);
public static int GetInt (string key, int defaultValue);
// 获取存储文件中 key 键对应的整数值(不存在则返回 defaultValue)
public static float GetFloat (string key);
public static float GetFloat (string key, float defaultValue);
// 获取存储文件中 key 键对应的浮点数值(不存在则返回 defaultValue)
public static string GetString (string key);
public static string GetString (string key, string defaultValue);
// 获取存储文件中 key 键对应的字符串值(不存在则返回 defaultValue)
public static void Save ();
// 将所有修改的内容写入硬盘(默认情况下,Unity 会在 OnApplicationQuit() 执行过程中自动写入)
public static bool HasKey (string key);
// 判断 key 键是否存在(存在则返回 true)
public static void DeleteKey (string key);
// 删除 key 键以及其对应的值
public static void DeleteAll ();
// 删除所有存储内容(需谨慎使用)
使用示例
private string userName;
if (!PlayerPrefs.HasKey("userName"))
{
PlayerPrefs.SetString("userName", "fightsyj");
}
userName = PlayerPrefs.GetString("userName");
存储位置
在 Windows 上,PlayerPrefs 存储在 HKCU\Software\[公司名称]\[产品名称] 项下的注册表中,其中公司和产品名称是在 Edit->Project Settings->Player 中设置的名称。
在 Linux 上,PlayerPrefs 位于 ~/.config/unity3d/[公司名称]/[产品名称] 中,其中同样使用在 Edit->Project Settings->Player 中指定的公司和产品名称。
在 Windows 应用商店应用程序中,PlayerPrefs 位于 %userprofile%\AppData\Local\Packages\[产品包 ID]>\LocalState\playerprefs.dat 中。
在 Windows Phone 8 上,PlayerPrefs 位于应用程序的本地文件夹中。
在 Android 中,数据存储(持久保存)在设备上。数据保存在 SharedPreferences 中。
在 WebGL 上,PlayerPrefs 使用浏览器的 IndexedDB API 进行存储。
在 iOS 上,PlayerPrefs 存储在 /Library/Preferences/[Bundle ID].plist 中。
ps
快速打开注册表:Win + R -> regedit