游戏蛮牛学习群(纯技术交流,不闲聊):959392658
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:2370

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 4055|回复: 26

[海莉zhe] 【每日一记】Unity3D 游戏数据存储(八)【小白篇】

[复制链接]  [移动端链接]
排名
559
昨日变化

68

主题

242

帖子

3194

积分

Rank: 9Rank: 9Rank: 9

UID
76890
好友
90
蛮牛币
4486
威望
0
注册时间
2015-3-4
在线时间
1160 小时
最后登录
2018-12-10

专栏作家

发表于 2018-3-4 21:32:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
         今天小编和大家一下学习一下Unity 的数据保存,其实 中提供用于本地持久化保存和读取的类(PlayerPrefs),它本质上就是以键值对形式将数据保存在文件中,
然后程序载运行的时候可以根据这个键值对的名称来取得上次保存的数值。

          官方文档:https://docs.unity3d.com/ScriptReference/PlayerPrefs.html
          圣典文档:http://wiki.ceeger.com/script:unityengine:classes:playerprefs:playerprefs


          1. PlayerPrefs 支持三种数据类型保存和读取,浮点型(Float)、整型(Int)、字符串(String)。

               1.0 一般函数的用法,利用Set 保存数据,利用Get获取数据;

                   PlayerPrefs.SetString("_NAME", set_NAME); 这个方法中第一个参数表示存储数据的名称,第二的参数表示具体存储的数值。

                   get_NAME=PlayerPrefs.GetString("_NAME"); 这个方法中第一个数据表示读取数据的名称,本来还有第二的参数,表示默认值,如果通过数据名称没有找到对应的值,那么就返回默认值,这个值也可以写,则返回空值。


           2.下面我们直接新建一个测试的项目,具体看一下他用法;

               2.0  新建Unity 项目,新建TestPlayerPrefs.cs 脚本;
           
                 TestPlayerPrefs.cs 代码如下:

                  
[C#] 纯文本查看 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestPlayerPrefs : MonoBehaviour {

	public string stringToId = "";
	public string stringToName = "";
	public string stringToAge = "";
	public string stringToweight = "";

	void OnGUI()
	{
		//存储数据值
		GUI.Label(new Rect (50,50,200,20),"Id 号:");
		stringToId = GUI.TextField (new Rect(100, 50, 200, 20), stringToId, 25);
		GUI.Label(new Rect (50,100,200,20),"姓名:");
		stringToName = GUI.TextField (new Rect(100, 100, 200, 20), stringToName, 25);
		GUI.Label(new Rect (50,150,200,20),"年龄:");
		stringToAge = GUI.TextField (new Rect(100, 150, 200, 20), stringToAge, 25);
		GUI.Label(new Rect (50,200,200,20),"体重:");
		stringToweight = GUI.TextField (new Rect(100, 200, 200, 20), stringToweight, 25);

		if (GUI.Button (new Rect (100, 250, 100, 50), "存储数据")) {
			PlayerPrefs.SetInt("stringToId", int.Parse(stringToId));
			PlayerPrefs.SetString("stringToName", stringToName);
			PlayerPrefs.SetInt("stringToAge", int.Parse(stringToAge));
			PlayerPrefs.SetFloat("stringToweight", float.Parse(stringToweight));
		}

		GUI.Label(new Rect (100,300,200,500),"个人信息:"+PlayerPrefs.GetString("stringToName").ToString() +"的Id工号是"+PlayerPrefs.GetInt("stringToId").ToString()+",年龄是"+PlayerPrefs.GetInt("stringToAge").ToString()+",体重在"+PlayerPrefs.GetFloat("stringToweight").ToString()+"kg。");

		if (GUI.Button (new Rect (100, 350, 100, 50), "清除数据")) {
			PlayerPrefs.DeleteAll ();
		}
	}
}

            2.1 因为使用比较简单,所以直接运行看结果哈!

                  0.jpeg




回复

使用道具 举报

7日久生情
2509/5000
排名
2458
昨日变化
1

13

主题

1150

帖子

2509

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
168159
好友
4
蛮牛币
5757
威望
0
注册时间
2016-9-12
在线时间
774 小时
最后登录
2018-12-10
发表于 2018-3-5 09:24:02 | 显示全部楼层

回复

使用道具 举报

6蛮牛粉丝
1120/1500
排名
2486
昨日变化
7

0

主题

354

帖子

1120

积分

Rank: 6Rank: 6Rank: 6

UID
158859
好友
0
蛮牛币
1306
威望
0
注册时间
2016-7-26
在线时间
210 小时
最后登录
2018-12-10
发表于 2018-3-5 09:27:28 | 显示全部楼层
正在学习呢

回复

使用道具 举报

7日久生情
2235/5000
排名
1838
昨日变化
1

1

主题

943

帖子

2235

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
216583
好友
2
蛮牛币
3689
威望
0
注册时间
2017-4-7
在线时间
587 小时
最后登录
2018-12-10
发表于 2018-3-5 09:30:39 | 显示全部楼层
多谢分享

回复

使用道具 举报

7日久生情
2084/5000
排名
1722
昨日变化

0

主题

736

帖子

2084

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
148286
好友
0
蛮牛币
3720
威望
0
注册时间
2016-5-11
在线时间
608 小时
最后登录
2018-12-10
发表于 2018-3-5 10:01:20 | 显示全部楼层

回复

使用道具 举报

3偶尔光临
278/300
排名
9039
昨日变化
3

0

主题

62

帖子

278

积分

Rank: 3Rank: 3Rank: 3

UID
257831
好友
0
蛮牛币
100
威望
0
注册时间
2017-12-4
在线时间
92 小时
最后登录
2018-12-10
发表于 2018-3-5 10:05:52 | 显示全部楼层
学习了!

回复

使用道具 举报

3偶尔光临
232/300
排名
9424
昨日变化

0

主题

33

帖子

232

积分

Rank: 3Rank: 3Rank: 3

UID
259144
好友
0
蛮牛币
354
威望
0
注册时间
2017-12-12
在线时间
85 小时
最后登录
2018-3-20
发表于 2018-3-5 10:38:48 | 显示全部楼层
[发帖际遇]: 一个袋子砸在了 Unique丶 头上,Unique丶 赚了 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

6蛮牛粉丝
1180/1500
排名
2505
昨日变化
1

0

主题

306

帖子

1180

积分

Rank: 6Rank: 6Rank: 6

UID
228538
好友
9
蛮牛币
2579
威望
0
注册时间
2017-6-24
在线时间
324 小时
最后登录
2018-12-7
发表于 2018-3-5 13:15:15 | 显示全部楼层
感谢分享

回复

使用道具 举报

6蛮牛粉丝
1459/1500
排名
1361
昨日变化
1

10

主题

126

帖子

1459

积分

Rank: 6Rank: 6Rank: 6

UID
66514
好友
3
蛮牛币
2152
威望
0
注册时间
2015-1-7
在线时间
445 小时
最后登录
2018-10-26
发表于 2018-3-5 14:07:03 | 显示全部楼层
如果是webgl该怎么把数据存入数据库和从数据库读出来

回复 支持 反对

使用道具 举报

排名
559
昨日变化

68

主题

242

帖子

3194

积分

Rank: 9Rank: 9Rank: 9

UID
76890
好友
90
蛮牛币
4486
威望
0
注册时间
2015-3-4
在线时间
1160 小时
最后登录
2018-12-10

专栏作家

 楼主| 发表于 2018-3-5 16:26:44 | 显示全部楼层
714161459 发表于 2018-3-5 14:07
如果是webgl该怎么把数据存入数据库和从数据库读出来

这个不属于数据库呢!是本地持久化保存和读取的,属于本地化数据。而且各个平台保存的位置都不太一样,可以参考:https://docs.unity3d.com/ScriptReference/PlayerPrefs.html  而On WebGL, PlayerPrefs are stored using the browser's IndexedDB API.

回复 支持 反对

使用道具 举报

排名
559
昨日变化

68

主题

242

帖子

3194

积分

Rank: 9Rank: 9Rank: 9

UID
76890
好友
90
蛮牛币
4486
威望
0
注册时间
2015-3-4
在线时间
1160 小时
最后登录
2018-12-10

专栏作家

 楼主| 发表于 2018-3-5 16:26:53 | 显示全部楼层
714161459 发表于 2018-3-5 14:07
如果是webgl该怎么把数据存入数据库和从数据库读出来

这个不属于数据库呢!是本地持久化保存和读取的,属于本地化数据。而且各个平台保存的位置都不太一样,可以参考:https://docs.unity3d.com/ScriptReference/PlayerPrefs.html  而On WebGL, PlayerPrefs are stored using the browser's IndexedDB API.

回复 支持 反对

使用道具 举报

7日久生情
3423/5000
排名
1722
昨日变化

0

主题

2127

帖子

3423

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
219676
好友
1
蛮牛币
2610
威望
0
注册时间
2017-7-12
在线时间
554 小时
最后登录
2018-12-10

活力之星

发表于 2018-3-5 18:46:03 | 显示全部楼层
谢谢分享

回复

使用道具 举报

5熟悉之中
849/1000
排名
5603
昨日变化
1

0

主题

438

帖子

849

积分

Rank: 5Rank: 5

UID
146677
好友
9
蛮牛币
2749
威望
0
注册时间
2016-4-25
在线时间
169 小时
最后登录
2018-12-10
QQ
发表于 2018-3-6 11:20:29 | 显示全部楼层
看你这么幸苦,给你个赞

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1349/1500
排名
2807
昨日变化

1

主题

489

帖子

1349

积分

Rank: 6Rank: 6Rank: 6

UID
220310
好友
1
蛮牛币
2304
威望
0
注册时间
2017-5-2
在线时间
359 小时
最后登录
2018-6-13
发表于 2018-3-6 11:56:56 | 显示全部楼层

回复

使用道具 举报

6蛮牛粉丝
1360/1500
排名
5427
昨日变化
3

6

主题

831

帖子

1360

积分

Rank: 6Rank: 6Rank: 6

UID
236677
好友
0
蛮牛币
2229
威望
0
注册时间
2017-8-9
在线时间
273 小时
最后登录
2018-9-11
发表于 2018-3-6 12:38:19 | 显示全部楼层
感谢分享

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表