跳到主要内容

PlayerPrefsSaver

重要 注意 提醒

Coding Style wiki​


PlayerPrefsSaver 是 SaverSystem 内置的运行时存储器 (继承 Saver),以 UnityEngine.PlayerPrefs 作为存储后端,每次 Save* 皆会自动调用 PlayerPrefs.Save() 立即写入;并可直接使用基类提供的文本数据功能 (Data Map)。

命名空间OxGKit.SaverSystem
类型public class PlayerPrefsSaver : Saver
源码PlayerPrefsSaver.cs
using OxGKit.SaverSystem;

快速上手​

using OxGKit.SaverSystem;

// 创建运行时存储器 (PlayerPrefs 后端)
Saver saver = new PlayerPrefsSaver();

// 基本存取
saver.SaveString("name", "michael");
saver.SaveInt("language", 2);
saver.SaveFloat("bgmVolume", 0.8f);

// 文本数据功能 (由 Saver 基类提供)
saver.SaveData("appPrefs", "lastLogin", "2026-07-29");
string lastLogin = saver.GetData("appPrefs", "lastLogin", null);

通用规则​

适用范围​

存储器存储后端适用
PlayerPrefsSaverUnityEngine.PlayerPrefs运行时 (游戏内设置,随应用程序/平台存储)
EditorPrefsSaverUnityEditor.EditorPrefs仅编辑器 (编辑器工具偏好设置)

(模块概览详见模块介绍)

写入时机​

注意 每次 Save* 皆会自动调用 PlayerPrefs.Save() 立即写入磁盘;DeleteKey / DeleteAll 则不会额外调用 Save() (依 Unity 默认在应用程序正常退出时写入,必要时可自行调用 PlayerPrefs.Save())。

提醒 PlayerPrefs 存储位置依平台而异 (例如 Windows 为注册表、WebGL 为浏览器 IndexedDB);WebGL 的持久化依赖浏览器落盘,并避免存储过大的字符串。


重写成员​

方法总览​

方法说明
SaveString存储字符串并立即写入。
GetString获取字符串。
SaveInt存储整数并立即写入。
GetInt获取整数。
SaveFloat存储浮点数并立即写入。
GetFloat获取浮点数。
HasKey检查指定键是否存在。
DeleteKey删除指定键。
DeleteAll删除所有 PlayerPrefs 键值。

SaveString​

public override void SaveString(string key, string value)

通过 PlayerPrefs.SetString 存储字符串,并立即调用 PlayerPrefs.Save() 写入。

saver.SaveString("name", "michael");

GetString​

public override string GetString(string key, string defaultValue = "")

通过 PlayerPrefs.GetString 获取字符串,键不存在时返回 defaultValue。

SaveInt​

public override void SaveInt(string key, int value)

通过 PlayerPrefs.SetInt 存储整数,并立即调用 PlayerPrefs.Save() 写入。

GetInt​

public override int GetInt(string key, int defaultValue = 0)

通过 PlayerPrefs.GetInt 获取整数,键不存在时返回 defaultValue。

SaveFloat​

public override void SaveFloat(string key, float value)

通过 PlayerPrefs.SetFloat 存储浮点数,并立即调用 PlayerPrefs.Save() 写入。

GetFloat​

public override float GetFloat(string key, float defaultValue = 0f)

通过 PlayerPrefs.GetFloat 获取浮点数,键不存在时返回 defaultValue。

HasKey​

public override bool HasKey(string key)

通过 PlayerPrefs.HasKey 检查指定键是否存在。

DeleteKey​

public override void DeleteKey(string key)

通过 PlayerPrefs.DeleteKey 删除指定键。

DeleteAll​

public override void DeleteAll()

通过 PlayerPrefs.DeleteAll 删除键值。

重要 PlayerPrefs.DeleteAll 会删除该应用程序的所有 PlayerPrefs 键值 (包含非经由本存储器存储的键),请谨慎使用。