Data——PlayerPrefs

1.基本方法

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

public class lesson1 : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        #region PlayerPrefs是什么
        //是Unity提供的可以用于存储读取玩家数据的公共类
        #endregion

        #region 存储相关
        //PlayerPrefs的数据存储 类似于键值对存储 一个键对应一个值
        //提供了存储3种数据的方法 int float string
        //键:string类型
        //值:int float string 对应3种API

        PlayerPrefs.SetInt("myAge", 18);
        PlayerPrefs.SetFloat("myHeight", 170.5f);
        PlayerPrefs.SetString("myName", "于双");
        //直接调用Set相关方法 只会把数据存到内存里
        //当游戏结束时 Unity会自动把数据存到硬盘里
        //如果游戏不是正常结束的 而是崩溃 数据是不会存到硬盘中的
        
        PlayerPrefs.Save();
        //只要调用该方法 就会马上存储到硬盘中

        //PlayerPrefs是有局限性的 它只能存三种类型的数据
        //如果你想要存储别的类型的数据 只能降低精度 或者上升精度来进行存储
        bool sex = true;
        PlayerPrefs.SetInt("sex", sex ? 1 : 0);

        //如果不同类型用同一键名进行存储 会进行覆盖
        //PlayerPrefs.SetFloat("myAge", 20.2f);
        #endregion

        #region 读取相关
        //注意:运行时 只要你Set了对应键值对
        //即使你没有马上存储Save在本地
        //也能够读取出信息

        //int
        int age = PlayerPrefs.GetInt("myAge");
        print(age);
        //如果找不到myAge对应的值 就会返回函数的第二个参数 默认值
        age = PlayerPrefs.GetInt("myAge", 100);
        print(age);

        //float
        float height = PlayerPrefs.GetFloat("myHeight");
        print(height);

        //string
        string name = PlayerPrefs.GetString("myName");

        //第二个参数 默认值 对于我们的作用
        //就是 在得到没有的数据的时候 就可以用它来进行基础数据的初始化

        //判断数据是否存在
        if (PlayerPrefs.HasKey("myName"))
        {
            print("存在myName对应的键值对数据");
        }
        #endregion

        #region 删除数据
        //删除指定键值对
        PlayerPrefs.DeleteKey("myAge");

        //删除所有存储的信息
        PlayerPrefs.DeleteAll();
        #endregion
    }
}

2.不同平台的存储位置

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

public class lesson2 : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        #region PlayerPrefs存储的数据存在哪里?
        //不同平台存储位置不一样

        #region Windows
        //PlayerPrefs 存储在
        //HKCU\Software\[公司名称]\[产品名称] 项下的注册表中
        //其中公司和产品名称是 在“Project Settings”中设置的名称

        //运行 regedit
        //HKEY_CURRENT_USER
        //SOFTWARE
        //Unity
        //UnityEditor
        //公司名称
        //产品名称
        #endregion

        #region Android
        // /data/data/包名/shared_prefs/pkg-name.xml
        #endregion

        #region IOS
        // /Library/Preferences/[应用ID].plist
        #endregion

        #endregion

        #region PlayerPrefs数据唯一性
        //PlayerPrefs中不同数据的唯一性
        //是由key决定的,不同的key决定了不同的数据
        //同一项目中 如果不同数据key相同 会造成数据丢失
        //要保证数据不丢失就要建立一个保证key唯一的规则
        #endregion
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值