今天在Unity编辑器环境中,调用了下EditorPrefs.DeleteAll()方法,发现会报异常,其中提示maxGICacheSize >= 5,然后打开Unity时保存的以前打开的项目,全部消失了,如下图:
如果点击OPEN打开以前关闭的项目,项目中的默认场景不再是关闭时保存的场景,而是新建了一个空场景,以前保存的场景并没有删除,如下图:
有时还设置的其他编译选项也会变动,例如Editor->Preferences...->General选项中的Auto Refresh复选框取消勾选(默认时勾选的),External Tools选项中的设置的Android JDK和SDK路径也清空了……
所以猜测EditorPrefs中保存了所有编辑器中默认保存的数据,像以前打开的工程、退出时保存的场景、设置的编辑环境等等都保存在EditorPrefs中,估计还会有其他编辑环境的数据,只是没有发现。因此建议不要轻易调用EditorPrefs.DeleteAll()方法,如果EditorPrefs保存了自己定义的键值,可使用EditorPrefs.DeleteKey(string keyName)根据键名来删除数据即可。而PlayerPrefs中的持久层数据是玩家自定义的数据,可以调用PlayerPrefs.DeleteAll()方法。
以上只是我的个人见解,如果有不妥当的烦请指出。