Unity数据存储方式之一——PlayerPrefs

1、PlayerPrefs是什么?

PlayerPrefs是Unity内置的一个用于数据本地持久化保存与读取的类,可以用于存储一些简单的数据类型:int ,string ,float。工作原理十分简单,就是以key-value的形式将数据保存在本地,然后在代码中可以写入、读取、更新数据。

PlayerPrefs的局限性:它只能存储3种数据类型,如果想要存储别的数据类型,只能降低精度,或者提高精度来进行存储。

2、存储相关

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson1_PlayerPrefs : MonoBehaviour
{
    private void OnGUI()
    {
        //1.存int型
        PlayerPrefs.SetInt("intKey", 18);
        //2.存float型
        PlayerPrefs.SetFloat("floatKey", 1.5f);
        //3.存string型
        PlayerPrefs.SetString("strKey", "PlayerPrefs");

        //注意:直接调用Set方法,只是把数据存到了内存中
        //      当游戏结束时,Unity会自动把数据存到硬盘中
        //      如果游戏没有正常结束(报错或崩溃),那么数据将会丢失
        //解决这一问题的办法,调用.Save()方法,只要一调用,就会马上把数据存到硬盘中
        PlayerPrefs.Save();

        //补充:如果不同类型用同一个键进行存储,会把上一个数据覆盖掉
        PlayerPrefs.SetInt("floatKey", 1);
    }
}

3、读取相关

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson1_PlayerPrefs : MonoBehaviour
{
    private void OnGUI()
    {
        PlayerPrefs.SetInt("intKey", 18);
        PlayerPrefs.SetFloat("floatKey", 1.5f);
        PlayerPrefs.SetString("strKey", "PlayerPrefs");
        PlayerPrefs.Save();

        //1.读int型
        int age = PlayerPrefs.GetInt("intKey");
        //还有个重载
        //参数2 如果找不到键为myAge的值,就返回默认值100
        //参数2的作用:在得到不存在的数据时,就可以利用参数2来进行基础数据的初始化
        age = PlayerPrefs.GetInt("intKey", 23);

        //2.读float型
        float height = PlayerPrefs.GetFloat("floatKey");

        //3.读string型
        string name = PlayerPrefs.GetString("strKey");

        //补充:判断数据是否存在
        if (PlayerPrefs.HasKey("strKey"))
        {
            print("存在键为strKey的数据");
        }
    }
}

4、删除数据

//删除指定键值对
PlayerPrefs.DeleteKey("strKey");
//删除所有数据
PlayerPrefs.DeleteAll();

—— 完 ——
相关推荐
评论

立 为 非 似

中 谁 昨 此

宵 风 夜 星

。 露 , 辰

文章点击榜

细 无 轻 自

如 边 似 在

愁 丝 梦 飞

。 雨 , 花