您当前的位置: 首页 >  unity

Allen Su

暂无认证

  • 2浏览

    0关注

    431博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Unity3D 教程系列第 15 篇】本地数据持久化之 Playerprefs 类

Allen Su 发布时间:2019-03-06 13:47:04 ,浏览量:2

这是【Unity3D 教程系列第 15 篇】,如果觉得有用的话,欢迎关注专栏。

文章目录
      • 一:什么是 PlayerPrefs 类
      • 二:PlayerPrefs 类中的静态方法
        • 1:写入数据
        • 2:读取数据
        • 3:删除数据
        • 4:检查数据
        • 5:保存数据
      • 三:Windows 和 Mac系统 PlayerPrefs 的储存位置

一:什么是 PlayerPrefs 类

作用 Unity3d提供的用于本地数据持久化保存与读取的类。

工作原理 以“键值对”的形式将数据保存在文件中,然后程序可以根据这个名称取出上次保存的数值(windows和ios系统的保存路径不一样,见文末)。

二:PlayerPrefs 类中的静态方法

PlayerPrefs 类目前只支持3种数据类型的保存和读取,分别是浮点型(float),整型(int),字符串型(string)。

写入数据:SetFloat(),SetInt(),SetString() 读取数据:GetFloat(),GetInt(),GetString() 删除数据:DeleteKey(),DeleteAll() 检查数据:HasKey() 强制保存数据:Save()

这些函数的用法基本一致使用 Set 进行保存,使用 Get 进行读取。所有的 key(键) 都是 string 类型,value(值)取决于你用的类型。

举例说明

1:写入数据
    void Awake()
    {
        //存取数据
        PlayerPrefs.SetFloat("鸣人", 18.5f);          //写入浮点型
        PlayerPrefs.SetInt("佐助",17);                //写入整型
        PlayerPrefs.SetString("苏", "程序人生道可道");//写入字符串型
    }
2:读取数据
    void Start()
    {
        //读取数据
        Debug.Log(PlayerPrefs.GetFloat("鸣人"));      //读取浮点型
        Debug.Log(PlayerPrefs.GetInt("佐助"));        //读取整型
        Debug.Log(PlayerPrefs.GetString("苏"));       //读取字符串类型
    }

运行u3d,结果如下图所示 在这里插入图片描述 如果我们获取一个不存在的 key 返回的是 null 吗? 答:不是,当我们尝试获取一个不存在的 Key 时,float,int 类型的会返回默认值0,string类型的返回默认值空字符串,而不是 null。 不过,unity允许存入默认数值,所以在读取数值的时候,返回默认数值的情况有两种,一种是因为不存在该 Key 值,另一种是因为自己存入了默认值。

3:删除数据
 PlayerPrefs.DeleteKey("鸣人");  //删除指定key对应的值
 PlayerPrefs.DeleteAll();       //删除所有数据
4:检查数据
    void Start()
    {
        if (PlayerPrefs.HasKey("鸣人"))
        {
            Debug.Log("执行功能");
        }
    }
5:保存数据
PlayerPrefs.Save();

unity会为我们自动保存数据,当然你也可以调用 Save() 函数进行强制保存。

三:Windows 和 Mac系统 PlayerPrefs 的储存位置

以下内容来自百度

1:Windows: PlayerPrefs 被存储在注册表的 HKCU\Software[company name][product name]键下。 打开“运行”输入 regedit 打开注册表),这里 company 和 product 名是在 Project Setting 中设置的,是持久本地化存储。

2:Mac PlayerPrefs 存储在~/Library/PlayerPrefs文件夹,名为 unity.[company name].[product name].plist。 这里 company 和 product 名是在 Project Setting 中设置的,相同的 plist 用于在编辑器中运行的工程和独立模式 (打开 Find,按住 Option 键,点击“前往 →“资源库”,就可以找到 Preferences 文件夹). 。

你的问题得到解决了吗?欢迎在评论区留言。

赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。

结束语 技术是一点一点积累的,大神也不是一天就可以达到的。原地不动就是退步,所以每天进步一点点。 最后,附上一句格言:"好学若饥,谦卑若愚",望共勉。
关注
打赏
1656491068
查看更多评论
立即登录/注册

微信扫码登录

0.0388s