跳到主要内容

EditorPrefsSaver

重要 注意 提醒

Coding Style wiki​


EditorPrefsSaver 是 SaverSystem 内置的编辑器存储器 (继承 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 本身与其他工具的设置),一般情况强烈不建议使用。