Unity PlayerPrefs 之 PlayerPrefs数据存储读取

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界面如下图

Unity PlayerPrefs 之 PlayerPrefs数据存储读取

在工程中新建一个脚本,脚本可以命名为“PlayerprefsTest”,具体如下图

Unity PlayerPrefs 之 PlayerPrefs数据存储读取

选中“PlayerprefsTest”脚本,双击脚本或者右键“Open C# Project”,具体如下图

Unity PlayerPrefs 之 PlayerPrefs数据存储读取

在打开的“DictionaryTest”脚本上进行代码编辑,首先设置存储和读取变量,然后通过OnGUI输入并保存数据,最后在读取保存的数据,具体代码及代码说明如下图

Unity PlayerPrefs 之 PlayerPrefs数据存储读取

Unity PlayerPrefs 之 PlayerPrefs数据存储读取

脚本具体代码如下:

 

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”,具体如下图

Unity PlayerPrefs 之 PlayerPrefs数据存储读取

运行场景,即可看到控制台Console上的打印结果与预期一致,具体如下图

Unity PlayerPrefs 之 PlayerPrefs数据存储读取

 

数据被我们从本地文件中读取出来了,完成了一次简单的存档操作。 在PlayerPrefs 类中还提供了PlayerPrefs.DeleteKey(key : string)删除指定数据;PlayerPrefs.DeleteAll() 删除全部键 ;PlayerPrefs.HasKey (key : string)判断数据是否存在的方法;