纳金网
标题:
unity3D游戏存档第一讲——PlayerPrefs类的用法
[打印本页]
作者:
paopao
时间:
2014-1-16 16:15
标题:
unity3D游戏存档第一讲——PlayerPrefs类的用法
unity3D提供了一个用于本地持久化保存与读取的类——PlayerPrefs。工作原理非常简单,以键值对的形式将数据保存在文件中,然后程序可以根据这个名称取出上次保存的数值。
PlayerPrefs类支持3中数据类型的保存和读取,浮点型,整形,和字符串型。
分别对应的函数为:
SetInt();保存整型数据;
GetInt();读取整形数据;
SetFloat();保存浮点型数据;
GetFlost();读取浮点型数据;
SetString();保存字符串型数据;
GetString();读取字符串型数据;
这些函数的用法基本一致使用Set进行保存,使用Get进行读取。下面根据一个例子来详细说明一下用法:
首先打开unity3D,新建一个工程文件,然后在项目视图里面新建一个c#文件,命名为_Playerprefs
并输入一下代码:
public class _Playerprefs : MonoBehaviour {
public string set_NAME;
public string get_NAME;
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();
}
}
分析一下这段代码,我们在输入框中输入一个名称,然后点击存储数据按钮,将数据存储到本地并且命名为_NAME ,然后点击读取数据按钮,从本地数据中找到名称为_NAME 的数据,并存放到我们定义好的变量get_NAME 中,然后用Label显示出来
运行结果如下:
2014-1-16 15:49 上传
下载附件
(6.63 KB)
PlayerPrefs.SetString("_NAME", set_NAME); 这个方法中第一个参数表示存储数据的名称,第二的参数表示具体存储的数值。
get_NAME=PlayerPrefs.GetString("_NAME"); 这个方法中第一个数据表示读取数据的名称,本来还有第二的参数,表示默认值,如果通过数据名称没有找到对应的值,那么就返回默认值,这个值也可以写,则返回空值。
下面我们将这个简单的工程发布成EXE格式,打开我们发布好的EXE文件,在输入框里面输入张三。
如图:
2014-1-16 16:02 上传
下载附件
(13.38 KB)
点击存储数据按钮,将数据存储到本地,然后关闭exe文件,
然后再打开,打开后点击读取数据:得到的结果如图:
2014-1-16 16:06 上传
下载附件
(13.58 KB)
数据被我们从本地文件中读取出来了,完成了一次简单的存档操作。
在PlayerPrefs 类中还提供了
PlayerPrefs
.
DeleteKey
(
key
: string)删除指定数据;
PlayerPrefs
.DeleteAll() 删除全部键 ;
PlayerPrefs
.
HasKey (key : string)判断数据是否存在的方法;
等
作者:
may
时间:
2014-1-16 17:49
不错的分享
作者:
paopao
时间:
2014-1-16 17:52
作者:
狂风大尉
时间:
2014-1-16 19:14
呵呵,不错啊,期待后面的教程
作者:
lu090524043
时间:
2014-4-9 16:12
不错给力
作者:
我不是在笑!
时间:
2014-8-5 11:26
非常实用的例子的
作者:
cclove
时间:
2014-10-8 10:29
单级游戏用这个保存,游戏升级的时候,重新安装,这些保存的数据还有吗?
作者:
jiekii
时间:
2016-3-8 02:33
good~~~~~~~
作者:
peijie110
时间:
2017-4-15 19:24
楼主。请问下这个PlayerPrefs存储的东西会不会被系统删掉?
作者:
VLiang
时间:
2018-4-27 11:33
多谢分享~~
作者:
Evanlee
时间:
2018-6-1 12:41
多谢楼主分享~~~~
欢迎光临 纳金网 (http://go.narkii.com/club/)
Powered by Discuz! X2.5