跳到主要内容

EditorPrefsSaver

重要 注意 提醒

Coding Style wiki


EditorPrefsSaverSaverSystem 内置的编辑器存储器 (继承 Saver),以 UnityEditor.EditorPrefs 作为存储后端,适合存储编辑器工具的偏好设置 (EditorWindow、自定义 Inspector 等);并可直接使用基类提供的文本数据功能 (Data Map)

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

重要 EditorPrefsSaver 位于 Editor Assembly (OxGKit.SaverSystem.Editor),仅能在编辑器脚本 (Editor 文件夹或 Editor asmdef) 中引用,不可用于运行时脚本 (发布时会编译失败)。

快速上手

using OxGKit.SaverSystem;
using OxGKit.SaverSystem.Editor;

// 在编辑器工具中创建存储器 (EditorPrefs 后端)
Saver editorSaver = new EditorPrefsSaver();

// 存储编辑器工具偏好设置
editorSaver.SaveString("MyProject.MyTool.lastExportPath", "Assets/Exports");
string path = editorSaver.GetString("MyProject.MyTool.lastExportPath", "");

通用规则

适用范围

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

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

存储范围与写入时机

注意 EditorPrefs用户级存储,同一台机器上的所有 Unity 项目共用,建议键名加上项目或工具前缀 (例如 MyProject.MyTool.someKey) 避免冲突。

提醒PlayerPrefsSaver 不同,EditorPrefs 由编辑器自动持久化,无需 (也没有) Save() 调用。


重写成员

方法总览

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

SaveString

public override void SaveString(string key, string value)

通过 EditorPrefs.SetString 存储字符串。

editorSaver.SaveString("MyProject.MyTool.lastExportPath", "Assets/Exports");

GetString

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

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

SaveInt

public override void SaveInt(string key, int value)

通过 EditorPrefs.SetInt 存储整数。

GetInt

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

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

SaveFloat

public override void SaveFloat(string key, float value)

通过 EditorPrefs.SetFloat 存储浮点数。

GetFloat

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

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

HasKey

public override bool HasKey(string key)

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

DeleteKey

public override void DeleteKey(string key)

通过 EditorPrefs.DeleteKey 删除指定键。

DeleteAll

public override void DeleteAll()

通过 EditorPrefs.DeleteAll 删除键值。

重要 EditorPrefs.DeleteAll 会删除整台机器用户级的所有编辑器偏好设置 (包含 Unity 本身与其他工具的设置),一般情况强烈不建议使用