• 友链

  • 首页

  • 文章归档
h u a n b l o g
h u a n b l o g

欢

HI,Friend

01月
24
Unity

Unity数据保存

发表于 2022-01-24 • 字数统计 2042 • 被 1,425 人看爆

PlayerPrefs

在本地存储玩家数据,用过localstorage就明白了
PlayerPrefs.SetInt(KeyName, Value);     //保存数据
PlayerPrefs.GetInt(KeyName);            //获取数据

EditorPrefs

存储和访问 Unity 编辑器偏好设置,与PlayerPrefs类似,不过只适用于编辑器模式。用在自定义
EditorPrefs.SetInt(KeyName, Value);
EditorPrefs.GetInt(KeyName);

UnityDataStorage01.png

ScriptableObject

只需要继承自ScriptableObject,然后在类中定义需要的数据即可。
在类前可以添加CreateAssetMenu属性,方便开发者在Project面板右键Create创建该资源。

Attribute

用于指明该属性,和编辑扩展创建菜单一样,包括:名称、路径、优先级
[CreateAssetMenu(fileName = "Name", menuName = "Custom/MyDataAsset", order = 1)]
//数据定义部分
[CreateAssetMenu(fileName = "MyData", menuName = "Custom/MyDataAsset", order = 1)]
public class LookAtPoint : ScriptableObject
{
    public int id;
    public string objName;
    public float value;
}

//编辑器部分
static void CreateAssetMenuAttribute()
{
    //生成一个实例对象
    LookAtPoint asset = ScriptableObject.CreateInstance<LookAtPoint>();
    //创建资源
    AssetDatabase.CreateAsset(asset, Path.Combine(Application.dataPath, "MyData.asset"));
    //保存资源
    AssetDatabase.SaveAssets();
}

效果如下
UnityDataStorage02.png

UnityDataStorage03.png

Undo

用于编辑器模式下的撤销操作,在编辑器扩展一中有展示,使用这个删除可以撤销
比如说:在使用编辑器扩展生成的Object,删除的化不能像平常样Ctr+Z,因为Unity不会记录,是直接在内存中删除

编辑器扩展一

常用的方法

  • DestroyObjectImmediate :删除功能,并记录撤销操作
  • AddComponent:可以撤销新挂载的组件
  • RegisterCreatedObjectUndo: 记录新建的对象状态,可以撤销新建的对象

参考

  • 官网-ScriptableObject
  • 虚拟喵-Unity 编辑器扩展总结 八:EditorPrefs、ScriptableObject、Undo
分享到:
磁盘调度算法
Unity编辑器扩展二
  • 文章目录
  • 站点概览
欢

网红 欢

你能抓到我么?

Email RSS
看爆 Top5
  • mac系统版本与Xcode版本有冲突 4,082次看爆
  • JAVA_HOME环境配置问题 3,732次看爆
  • AssetBundle使用 3,500次看爆
  • VSCode配置C++开发环境 3,258次看爆
  • Lua反射 3,134次看爆

Copyright © 2025 欢 粤ICP备2020105803号-1

由 Halo 强力驱动 · Theme by Sagiri · 站点地图