unity数据持久化PlayerPrefs

数据持久化:将游戏在运行时内存中产生的数据保存到硬盘中。

PlayerPrefs:unity提供的可以用于存储玩家数据的公共类。

PlayerPrefs的数据存储,类似于键值对存储,一个键对应一个值。

提供了存储三种数据的方法 int,string,float

键:string类型

值:int float string

 

局限:只能存取三种类型的数据,想要存储其它类型的数据只能通过降低精度或者上升精度来保存。

PlayerPrefs的基本方法

存储:

        PlayerPrefs.SetInt("year",2021);

        PlayerPrefs.SetFloat("Money",233.1f);

        PlayerPrefs.SetString("Player","玩家");

        //直接调用Set相关方法 只会把数据存到内存里

        //当游戏结束时,unity会自动把数据存到硬盘中

        //如果游戏在运行过程中崩溃,数据不会存储到硬盘中

PlayerPrefs.Save();//只要调用了该方法,数据就会立即保存。

如果不同类型用同一键名进行存储,会覆盖。之后只能用对应类型的方法进行读取。

PlayerPrefs.SetFloat("year",200.1f);

 

读取:

        int year = PlayerPrefs.GetInt("year");

        Debug.Log(year);//仍能打印到控制台,但是打印出来的数字为零,因为数据已经被覆盖,返回了默认值。

year = PlayerPrefs.GetInt("year",12);GetInt()存在重载,当找不到对应值时返回传入的默认值。能找到则返回相应的值。

GetString()

GetFloat()同理

 

默认参数的作用:

        在得到没有的数据时,可用来对数据进行数据初始化。

 

判断数据是否存在:

         if (PlayerPrefs.HasKey("year"))

        {

            Debug.Log("数据存在");

        }

删除指定键值对:

        PlayerPrefs.DeleteKey("year");

删除所有存储信息:

        PlayerPrefs.DeleteAll();

PlayerPrefs在常见平台的存储位置

Windows:可打开注册表(win+R 输入regedit)

进入计算机\HKEY_CURRENT_USER\SOFTWARE\Unity\UnityEditor

Android: ./data/data/包名/shared_prefs/pkg-name.xml

Ios: ./Library/Preferences/[应用ID].plist

你可能感兴趣的:(笔记,unity)