Unity Playerprefs 之 Playerprefs数据存储读取。 unity3d提供了一个用于本地持久化保存与读取的类——PlayerPrefs。工作原理非常简单,以键值对的形式将数据保存在文件中,然后程序可以根据这个名称取出上次保存的数值。本节介绍如何使用PlayerPrefs存储和读取数据,具体如下
一、基本概念
PlayerPrefs:
Stores and accesses player preferences between game sessions.
保存和读取类型:
PlayerPrefs类支持3中数据类型的保存和读取,浮点型,整形,和字符串型。分别对应的函数为:
1)SetInt();保存整型数据;
2)GetInt();读取整形数据;
3)SetFloat();保存浮点型数据;
4)GetFlost();读取浮点型数据;
5)SetString();保存字符串型数据;
6)GetString();读取字符串型数据;
这些函数的用法基本一致使用Set进行保存,使用Get进行读取
二、PlayerPrefs 之 PlayerPrefs数据存储读取
打开Unity,新建一个空工程,然后Unity界面如下图
在工程中新建一个脚本,脚本可以命名为“PlayerprefsTest”,具体如下图
选中“PlayerprefsTest”脚本,双击脚本或者右键“Open C# Project”,具体如下图
在打开的“DictionaryTest”脚本上进行代码编辑,首先设置存储和读取变量,然后通过OnGUI输入并保存数据,最后在读取保存的数据,具体代码及代码说明如下图
脚本具体代码如下:
using UnityEngine;
public class PlayerprefsTest : MonoBehaviour {
private string set_NAME = string.Empty;
private string get_NAME = string.Empty;
void OnGUI()
{
GUILayout.BeginHorizontal("box");
GUILayout.Label("姓名:");
set_NAME = GUILayout.TextArea(set_NAME, 200, GUILayout.Width(50));
if (GUILayout.Button("存储数据"))
{
//将我们输入的姓名保存到本地,命名为_NAME ;
PlayerPrefs.SetString("_NAME", set_NAME);
}
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal("box");
if (GUILayout.Button("读取数据"))
{
//读取本地数据中名称为_NAME 的数据;
get_NAME = PlayerPrefs.GetString("_NAME");
}
GUILayout.Label("你输入的姓名:" + get_NAME);
GUILayout.EndHorizontal();
}
}
脚本编译正确后,回到Unity界面,在场景中新建一个“GameObject”,然后把脚本“PlayerprefsTest ”赋给“GameObject”,具体如下图
运行场景,即可看到控制台Console上的打印结果与预期一致,具体如下图
数据被我们从本地文件中读取出来了,完成了一次简单的存档操作。 在PlayerPrefs 类中还提供了PlayerPrefs.DeleteKey(key : string)删除指定数据;PlayerPrefs.DeleteAll() 删除全部键 ;PlayerPrefs.HasKey (key : string)判断数据是否存在的方法;