Unity中有PlayerPrefs和EditorPrefs两种,图片里列举了
这两种方式的存储和获取方法,其中EditorPrefs比PlayerPrefs多了一个bool的存储和获取。EditorPrefs是在编辑器模式下的存储功能,PlayerPrefs是游戏运行时的代码里定义的存储功能,比如游戏结束显示最高分,就可以调用PlayerPrefs的方法来存储这个分数,以便再一次进入游戏时调用PlayerPrefs获取键值的方法时能得到上一次的最高分。
接下来说一下PlayerPrefs.DeleteKey()和EditorPrefs.DeleteKey(),这两个就是删除某个key和对应的value。
最后就是PlayerPrefs.DeleteAll()和EditorPrefs.DeleteAll()的区别和共同点,首先共同点就是删除所有key和所有value。接着区别就是PlayerPrefs删除的是代码里主动调用方法存储的所有key和value,而EditorPrefs删除的除了编辑器模式下的测试用的所有key和value,可能还包括unity编辑器自身存储的key和value,其中就包括下面图中的数据,原本No local projects 处是之前打开
过的其他项目的名字和路径以及使用的unity版本,但是在编辑器模式下用了EditorPrefs.DeleteAll()这个方法后,这边就消失了,其他版本的unity也都消失了,会造成一些不必要的麻烦,而且还把编辑器菜单栏Edit -> Preference -> General -> Auto Refresh 的勾取消了,这是unity脚本有变化时会自动编译的选项,所以在编辑器模式下得谨慎使用EditorPrefs.DeleteAll()这个方法。