Unity零基础到入门☀️| Unity中的数据存储 PlayerPrefs

举报
呆呆敲代码的小Y 发表于 2021/10/29 16:55:26 2021/10/29
【摘要】 📢前言本文章是Unity零基础到入门专栏的系列文章适合对Unity3D引擎感兴趣的小伙伴学习,偏向于新手学习!本篇文章就来介绍一下Unity中三种基本的数据存储方式:PlayerPrefs、XML、JSON由于是偏向于新手教程,所以不会介绍的很深刻,看完之后掌握 基本的数据读取 就足够了!下面一起来看一下吧!暂时没时间看可以直接点赞收藏不迷路,让你快速学会不加班! 🎬Unity中的三种...

请添加图片描述


📢前言

  • 本文章是Unity零基础到入门专栏的系列文章
  • 适合对Unity3D引擎感兴趣的小伙伴学习,偏向于新手学习!
  • 本篇文章就来介绍一下Unity中三种基本的数据存储方式:PlayerPrefsXMLJSON
  • 由于是偏向于新手教程,所以不会介绍的很深刻,看完之后掌握 基本的数据读取 就足够了!
  • 下面一起来看一下吧!暂时没时间看可以直接点赞收藏不迷路,让你快速学会不加班!

🎬Unity中的三种数据存储

数据存储 也可以称为 数据持久化,不管是使用哪种语言、哪种开发工具
关于数据存储这一块对于整个项目以及开发团队来说都是非常重要的一块!

举个例子,我们在各种游戏里面充钱买装备、买皮肤等等操作的背后,都是有一个庞大的数据系统在支持。
一旦发生数据泄露、删库跑路等等事故,对公司来说也都是一个巨大的损失!

那本篇文章就来介绍一下在Unity中的数据存储常用的几种方式: PlayerPrefsXMLJSON

废话不多说,直接开始上干货了!


🎥PlayerPrefs

PlayerPrefs 是 Unity引擎 自身提供的一个用于本地持久化保存与读取的类

原理非常简单,以键值对的形式将数据保存在文件中,然后程序可以根据这个名称取出上次保存的数值。

PlayerPrefs类支持3种数据类型的保存和读取:浮点型整型字符串型
在这里插入图片描述
一共有上图中几种方法,下面来介绍一下分别的用法


🚩PlayerPrefs使用方法

保存数据

        //保存整型数据
        PlayerPrefs.SetInt("int1",123);
        //保存浮点型数据
        PlayerPrefs.SetFloat("float1",123.4f);
        //保存字符串型数据
        PlayerPrefs.SetString("string1","名字");

读取数据

        //读取整数型数据
        PlayerPrefs.GetInt("int1");
        //读取浮点型数据
        PlayerPrefs.GetFloat("float1");
        //读取字符串型数据
        PlayerPrefs.GetString("string1");

通过Key值取获取在本地持久化的数据,如果key值不存在 那么就会返回一个默认值

        //读取整数型数据,如果key值不存在 那么就会返回一个默认值0
        PlayerPrefs.GetInt("int1"123);
        //读取浮点型数据,如果key值不存在 那么就会返回一个默认值0.0
        PlayerPrefs.GetFloat("float1"123.4f);
        //读取字符串型数据,如果key值不存在 那么就会返回一个默认值""
        PlayerPrefs.GetString("string1""名字");

//查找是否存在该键值

PlayerPrefs.HasKey("int");

//清除所有记录

 PlayerPrefs.DeleteAll();

//删除其中某一条记录

PlayerPrefs.DeleteKey("int");

//将记录写入磁盘

PlayerPrefs.Save()

示例练习:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class PlayerPabsTest : MonoBehaviour
{
 
    // Use this for initialization
    void Start () {
        //写入姓名数据
        PlayerPrefs.SetString("姓名","张三");
        //查找是否存在键值为'姓名'的数据
        if (PlayerPrefs.HasKey("姓名"))
        {
            //读取键值为 '姓名' 的数据 并打印
            Debug.Log(PlayerPrefs.GetString("姓名"));
        }
    }
}

打印结果:
在这里插入图片描述


🚩不同平台的PlayerPrefs存储路径

  1. Mac OS X:~/Library/Preferences
  2. Windows:HKCU\Software[company name][product name]
  3. Linux:~/.config/unity3d/ [CompanyName]/ [ProductName]
  4. Windows Store Apps: %userprofile% \AppData\Local\Packages\ [ProductPackageId]>\LocalSt ate\playerprefs.dat
  5. WebPlayer
    ✨Mac OS X: ~/Library/ Preferences/Unity/ WebPlayerPrefs
    ✨Windows: %APPDATA% \Unity\WebPlayerPrefs

以上就是Unity中自带的数据存储方法PlayerPrefs的介绍

PlayerPrefs的优点:可以快速便捷的处理一些数据,比XML、JSON等其他方法要快的多,对于开发者来说,读写也非常简单

PlayerPrefs的缺点:只能对整数型、浮点型和 字符串型 三种类型数据进行处理,如果遇上非常庞大的一个数据量就会非常麻烦且不利于管理

在开发平时的一些小项目 对数据存储功能没有强的需求时,使用效果很好!

注意:PlayerPrfs不同数据,不能同名,即便是不同的数据类型

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。