跳到主要内容

PlayerPrefsSaver

重要 注意 提醒

Coding Style wiki


PlayerPrefsSaverSaverSystem 内置的运行时存储器 (继承 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 键值 (包含非经由本存储器存储的键),请谨慎使用。