unity3d提供了一個用於本地持久化保存與讀取的類——PlayerPrefs。工做原理很是簡單,以鍵值對的形式將數據保存在文件中,而後程序能夠根據這個名稱取出上次保存的數值。
一、PlayerPrefs類支持3中數據類型的保存和讀取,浮點型,整形,和字符串型。
分別對應的函數爲:php
- SetInt();保存整型數據;
- GetInt();讀取整形數據;
- SetFloat();保存浮點型數據;
- GetFlost();讀取浮點型數據;
- SetString();保存字符串型數據;
- GetString();讀取字符串型數據;
注:這些函數的用法基本一導致用Set進行保存,使用Get進行讀取。
2、使用
PlayerPrefs.SetString("YourKey", "Your_Value"); 這個方法中第一個參數表示存儲數據的名稱,第二的參數表示具體存儲的數值。html
MyValue=PlayerPrefs.GetString("YourKey"); 這個方法中第一個數據表示讀取數據的名稱,原本還有第二的參數,表示默認值,若是經過數據名稱沒有找到對應的值,那麼就返回默認值,這個值也能夠寫,則返回空值。android
3、補充app
在PlayerPrefs 類中還提供了編輯器
4、保存文件在不一樣平臺上的的存儲位置:函數
1.PC端post
①打開註冊表:regedit spa
②打開Unity中Edit----->Project Settings---->Player 3d
③註冊表中---->Softwarexml
④找到Unity
⑤找到寫入的文件
2.Android 端:
apk安裝在內置flash存儲器上時,
PlayerPrefs的位置是\data\data\com.company.product\shared_prefs\com.company.product.xml
apk安裝在內置SD卡存儲器上時,PlayerPrefs的位置是/sdcard/Android/data/com.company.product\shared_prefs\com.company.product.xml
shared_prefs是SharedPreferences的縮寫,是Android平臺上一個輕量級的存儲類,用來保存應用的一些經常使用配置,好比Activity狀態,Activity暫停時,將此activity的狀態保存到SharedPereferences中;當Activity重載,系統回調方法onSaveInstanceState時,再 從SharedPreferences中將值取出。SharedPreferences 能夠用來進行數據的共享,包括應用程序之間,或者同一個應用程序中的不一樣組件。好比兩個activity除了經過Intent傳遞數據以外,也能夠經過ShreadPreferences來共享數據.
Unity中經過PlayerPref來存儲遊戲的一些數據,特別是單機遊戲。在android平臺就是存儲到上述位置。
另外,是否安裝到sd卡可在PlayerSetting->Other Settings->Install Location 設置。
3.Mac
在Mac OS X上PlayerPrefs存儲在~/Library/PlayerPrefs文件夾,名爲unity.[company name].[product name].plist,這裏company和product名是在Project Setting中設置的,相同的plist用於在編輯器中運行的工程和獨立模式.On iOS, the PlayerPrefs can be found in your app's plist file. It's located at:/Apps/ your app's folder /Library/Preferences/ your app's .plist 在Windows獨立模式下,PlayerPrefs被存儲在註冊表的 HKCU\Software\[company name]\[product name]鍵下,這裏company和product名是在Project Setting中設置的.在Windows編輯器模式下,PlayerPrefs被存儲在註冊表的 HKCU\Software\Unity\UnityEditor\ [company name]\[product name]鍵下,這裏company和product名是在Project Setting中設置的。