PlayerPrefs
在本地存储玩家数据,用过localstorage就明白了
PlayerPrefs.SetInt(KeyName, Value); //保存数据
PlayerPrefs.GetInt(KeyName); //获取数据
EditorPrefs
存储和访问 Unity 编辑器偏好设置,与PlayerPrefs类似,不过只适用于编辑器模式。用在自定义
EditorPrefs.SetInt(KeyName, Value);
EditorPrefs.GetInt(KeyName);
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();
}
效果如下
Undo
用于编辑器模式下的撤销操作,在编辑器扩展一中有展示,使用这个删除可以撤销
比如说:在使用编辑器扩展生成的Object,删除的化不能像平常样Ctr+Z,因为Unity不会记录,是直接在内存中删除
常用的方法
- DestroyObjectImmediate :删除功能,并记录撤销操作
- AddComponent:可以撤销新挂载的组件
- RegisterCreatedObjectUndo: 记录新建的对象状态,可以撤销新建的对象