unity3d-实现本地数据的储存(PlayerPrefs&JsonUtility)

PlayerPrefs&&JsonUtility

  • PlayerPrefs&&JsonUtility(实现本地储存数据)★★★
    • ★ PlayerPrefs
      • 1、静态函数
    • ★ JsonUtility
      • 1、静态函数
    • PlayerPrefs&&JsonUtility.TOJson(实现本地保存数据)★★★

PlayerPrefs&&JsonUtility(实现本地储存数据)★★★

★ PlayerPrefs

  • class in UnityEngine
  • 描述
  • 在游戏会话之间存储和访问玩家偏好。
  • Editor/独立平台
  • On macOS PlayerPrefs are stored in ~/Library/Preferences folder, in a file named unity.[company name].[product name].plist, where company and product names are the names set up in Project Settings. The same .plist file is used for both Projects run in the Editor and standalone players.
  • 在 Windows 上,PlayerPrefs 存储在 HKCU\Software[公司名称][产品名称] 项下的注册表中,其中公司和产品名称是 在“Project Settings”中设置的名称。
  • 在 Linux 上,PlayerPrefs 位于 ~/.config/unity3d/[公司名称]/[产品名称] 中,其中同样使用在“Project Settings”中指定的公司和产品名称。
  • 在 Windows 应用商店应用程序中,PlayerPrefs 位于 %userprofile%\AppData\Local\Packages[产品包 ID]>\LocalState\playerprefs.dat 中
  • 在 Windows Phone 8 上,PlayerPrefs 位于应用程序的本地文件夹中,另请参阅:Directory.localFolder
  • 在 Android 中,数据存储(持久保存)在设备上。数据保存在 SharedPreferences 中。C#/JavaScript、Android Java 和原生代码全都可以访问 PlayerPrefs 数据。PlayerPrefs 数据在物理存储在 /data/data/pkg-name/shared_prefs/pkg-name.xml 中。
  • 在 WebGL 上,PlayerPrefs 使用浏览器的 IndexedDB API 进行存储。
  • 在 iOS 上,PlayerPrefs 存储在 /Library/Preferences/[Bundle ID].plist 中。

1、静态函数

函数名 作用
DeleteAll 从偏好中删除所有键和值。请谨慎使用。
DeleteKey 从偏好中删除 key 及其对应值。
GetFloat 返回偏好设置文件中与 key 对应的值(如果存在)。
GetInt 返回偏好设置文件中与 key 对应的值(如果存在)。
GetString 返回偏好设置文件中与 key 对应的值(如果存在)。
HasKey 如果 key 在偏好中存在,则返回 true。
Save 将所有修改的偏好写入磁盘。
SetFloat 设置由 key 标识的偏好的值。
SetInt 设置由 key 标识的偏好的值。
SetString 设置由 key 标识的偏好的值。

★ JsonUtility

  • 描述
    用于处理 JSON 数据的 Utility 函数。

1、静态函数

函数名 作用
FromJson 通过 JSON 表示形式创建对象。
FromJsonOverwrite 通过读取对象的 JSON 表示形式覆盖其数据。
ToJson 生成对象的公共字段的 JSON 表示形式。

PlayerPrefs&&JsonUtility.TOJson(实现本地保存数据)★★★

JsonUtility.ToJson|通过 JSON 表示形式创建对象
public static string| ToJson (object obj);通过读取对象的 JSON 表示形式覆盖其数据。
public static string T|oJson (object obj, bool prettyPrint);

  • 参数
参数
obj 要转换为 JSON 形式的对象。
prettyPrint 如果为 true,则格式化输出以实现可读性。如果为 false,则格式化输出以实现最小大小。默认为 false。

代码演示:

函数参数:data:所有都继成object所有可以传脚本参数等、key是可以来读取的名字

读取数据:
    private void save(object date,string key)
    {
       var jsonDate=JsonUtility.ToJson(date) ;
     	将数据转换为 JSON 形式的对象,
        PlayerPrefs.SetString(key,jsonDate);
        返回key偏写好的值
        PlayerPrefs.Save();
        将所有读取到的key写入磁盘
    }
	把数据从磁盘读取出来覆盖原有的数据
    private void load(object date, string key)
    {
    判断:如果 key 存在,则返回 true
        if (PlayerPrefs.HasKey(key))
        {
        	读取磁盘对应的key数据覆盖原来的数据
            JsonUtility.FromJsonOverwrite(PlayerPrefs.GetString(key), date);
        }
    }

你可能感兴趣的:(Unity引擎,android,unity,游戏引擎,c#)