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()這個方法。