http://www.cnblogs.com/qiaogaojian/p/5969855.html
unity3d提供了一個用於本地持久化保存與讀取的類——PlayerPrefs。工作原理非常簡單,以鍵值對的形式將數據保存在文件中,然后程序可以根據這個名稱取出上次保存的數值。
PlayerPrefs類支持3中數據類型的保存和讀取,浮點型,整形,和字符串型。
分別對應的函數為:
SetInt();保存整型數據;
GetInt();讀取整形數據;
SetFloat();保存浮點型數據;
GetFlost();讀取浮點型數據;
SetString();保存字符串型數據;
GetString();讀取字符串型數據;
這些函數的用法基本一致使用Set進行保存,使用Get進行讀取。下面根據一個例子來詳細說明一下用法:
首先打開unity3D,新建一個工程文件,然后在項目視圖里面新建一個c#文件,命名為_Playerprefs
並輸入一下代碼:
1 public class _Playerprefs : MonoBehaviour {
2 public string set_NAME;
3 public string get_NAME;
4 void OnGUI()
5 {
6 GUILayout.BeginHorizontal("box");
7 GUILayout.Label("姓名:");
8 set_NAME=GUILayout.TextArea(set_NAME, 200,GUILayout.Width(50));
9 if(GUILayout.Button("存儲數據"))
10 {
11
12 //將我們輸入的姓名保存到本地,命名為_NAME ;
13 PlayerPrefs.SetString("_NAME", set_NAME);
14 }
15 GUILayout.EndHorizontal();
16 GUILayout.BeginHorizontal("box");
17 if(GUILayout.Button("讀取數據"))
18 {
19
20 //讀取本地數據中名稱為_NAME 的數據;
21 get_NAME=PlayerPrefs.GetString("_NAME");
22 }
23 GUILayout.Label("你輸入的姓名:"+get_NAME);
24 GUILayout.EndHorizontal();
25
26
27 }
28 }
分析一下這段代碼,我們在輸入框中輸入一個名稱,然后點擊存儲數據按鈕,將數據存儲到本地並且命名為_NAME ,然后點擊讀取數據按鈕,從本地數據中找到名稱為_NAME 的數據,並存放到我們定義好的變量get_NAME 中,然后用Label顯示出來
運行結果如下:
PlayerPrefs.SetString("_NAME", set_NAME); 這個方法中第一個參數表示存儲數據的名稱,第二的參數表示具體存儲的數值。 get_NAME=PlayerPrefs.GetString("_NAME"); 這個方法中第一個數據表示讀取數據的名稱,本來還有第二的參數,表示默認值,如果通過數據名稱沒有找到對應的值,那么就返回默認值,這個值也可以寫,則返回空值。 下面我們將這個簡單的工程發布成EXE格式,打開我們發布好的EXE文件,在輸入框里面輸入張三。 如圖:

點擊存儲數據按鈕,將數據存儲到本地,然后關閉exe文件, 然后再打開,打開后點擊讀取數據:得到的結果如圖:
數據被我們從本地文件中讀取出來了,完成了一次簡單的存檔操作。 在PlayerPrefs 類中還提供了PlayerPrefs.DeleteKey(key : string)刪除指定數據;PlayerPrefs.DeleteAll() 刪除全部鍵 ;PlayerPrefs.HasKey (key : string)判斷數據是否存在的方法;