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