Unity持久化数据解析

PlayerPrefs类

 

介绍

Unity提供了一个本地持久化保存与读取数据的类——PlayerPrefs.它的工作原理是以键值对的形式将数据保存在文件中,这就好比给需要保存每一个数据赋予一个名称,将其成功存入本地存档中,程序就可以根据这个名称取出上次存储的数据

 

保存与读取数据:

•SetFloat():保存浮点型

•SetInt():保存整形

•SetString():保存字符串

•GetFloat():获取浮点类型

•GetInt():获取整形

•GetString():获取字符串

PlayerPrefs类可保存和读取3种基本的数据类型,它们是浮点型、整形和字符串类型,涉及的方法如下。

小练习:实现存储分数保存分数场景切换

记录分数

//保存整数

PlayerPrefs.SetInt(“Score”,100);

//读取数据

PlayerPrefs.GetInt(“Score”);


empty
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
/// 
/// 持久化数据存储
/// 
public class PlayerPrefdTest : MonoBehaviour
 {
    //定义变量  分数
    private int score = 0;
    private void Start()
    {
        //判断:是否存在有这项数据,其参数为判断的数据名称。
        if (PlayerPrefs.HasKey("分数"))
        {
            print("有");
            //将获取的数据存入 变量
            score = PlayerPrefs.GetInt("分数");
        }
    }
    private void OnGUI()
    {
        if (GUILayout.Button("看谁点的多"))
        {
            //每次点击 自增
            score++;
        }
        //GUI 的显示功能
         GUILayout.Label("当前分数为:" + score);
        if (GUILayout.Button("单击保存并进入下一关"))
        {
            //设置数据  键值对形式
            PlayerPrefs.SetInt("分数", score);
            //场景切换
          //  SceneManager.LoadScene(1);  在发布界面设置将场景拖进去 形成 场景序列索引
            SceneManager.LoadScene("Scene02");
        }
    }
}


empty
using UnityEngine;
using System.Collections;
/// 
/// 获取分数
/// 
public class GetScore : MonoBehaviour
 {
    private int Score = 0;
    private void Start()
    {
        //判断:是否存在有这项数据,其参数为判断的数据名称。
        if (PlayerPrefs.HasKey("分数"))
        {
            //获取数据 并存入变量
             Score =PlayerPrefs.GetInt("分数");
        }
       
    }
    private void OnGUI()
    {
        //显示当前分数 GUI的显示功能
            GUILayout.Label("当前分数为:" + Score);
    }
}

empty
public class PlayerprefsTest : MonoBehaviour 
{
    private int score = 0;
    private void Start()
    {
        if (PlayerPrefs.HasKey("Score"))//判断是否存有这项数据
            score = PlayerPrefs.GetInt("Score");//获取值
    }
    private void OnGUI()
    {
        if(GUILayout.Button("看谁点得多"))
            score++;
        GUILayout.Label("分数:" + score);
         if (GUILayout.Button("保存分数并进入下一关"))
        {
            PlayerPrefs.SetInt("Score", score);//存储
            //场景切换
            SceneManager.LoadScene("Scene03");
        } 
  }
}
public class GetScore : MonoBehaviour //挂给Scene03中的物体 
{
    private int score = 0;
    private void Start()
    {
        if (PlayerPrefs.HasKey("Score"))//只要在同一个工程,key通用
            score = PlayerPrefs.GetInt("Score");
    }
	private void OnGUI()
    {
        GUILayout.Label("分数:" + score);
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值