Unity持久化数据解析

来源:互联网 发布:挂机赚钱软件 编辑:程序博客网 时间:2024/06/06 07:33

PlayerPrefs类

 

介绍

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

 

保存与读取数据:

•SetFloat():保存浮点型

•SetInt():保存整形

•SetString():保存字符串

•GetFloat():获取浮点类型

•GetInt():获取整形

•GetString():获取字符串

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

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

记录分数

//保存整数

PlayerPrefs.SetInt(“Score”,100);

//读取数据

PlayerPrefs.GetInt(“Score”);


emptyusing 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");        }    }}

emptyusing 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);    }}

emptypublic 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);    }}



原创粉丝点击