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

扫一扫,访问微社区

开发者专栏

关注:2309

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

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

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

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

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

67

主题

234

帖子

3019

积分

Rank: 9Rank: 9Rank: 9

UID
76890
好友
86
蛮牛币
4301
威望
0
注册时间
2015-3-4
在线时间
1090 小时
最后登录
2018-9-17

专栏作家

发表于 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日久生情
2284/5000
排名
2901
昨日变化
6

9

主题

1114

帖子

2284

积分

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

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

回复

使用道具 举报

5熟悉之中
908/1000
排名
3266
昨日变化
15

0

主题

328

帖子

908

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

7日久生情
2024/5000
排名
2192
昨日变化
9

1

主题

928

帖子

2024

积分

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

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

回复

使用道具 举报

7日久生情
1944/5000
排名
1931
昨日变化
6

0

主题

725

帖子

1944

积分

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

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

回复

使用道具 举报

3偶尔光临
235/300
排名
9669
昨日变化
4

0

主题

55

帖子

235

积分

Rank: 3Rank: 3Rank: 3

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

回复

使用道具 举报

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

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 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

5熟悉之中
980/1000
排名
3091
昨日变化
10

0

主题

274

帖子

980

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

6蛮牛粉丝
1455/1500
排名
1301
昨日变化
3

10

主题

125

帖子

1455

积分

Rank: 6Rank: 6Rank: 6

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

回复 支持 反对

使用道具 举报

排名
610
昨日变化
1

67

主题

234

帖子

3019

积分

Rank: 9Rank: 9Rank: 9

UID
76890
好友
86
蛮牛币
4301
威望
0
注册时间
2015-3-4
在线时间
1090 小时
最后登录
2018-9-17

专栏作家

 楼主| 发表于 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.

回复 支持 反对

使用道具 举报

排名
610
昨日变化
1

67

主题

234

帖子

3019

积分

Rank: 9Rank: 9Rank: 9

UID
76890
好友
86
蛮牛币
4301
威望
0
注册时间
2015-3-4
在线时间
1090 小时
最后登录
2018-9-17

专栏作家

 楼主| 发表于 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日久生情
3228/5000
排名
2076
昨日变化
1

0

主题

2115

帖子

3228

积分

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

UID
219676
好友
1
蛮牛币
2409
威望
0
注册时间
2017-7-12
在线时间
489 小时
最后登录
2018-9-18

活力之星

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

回复

使用道具 举报

5熟悉之中
838/1000
排名
5468
昨日变化
3

0

主题

433

帖子

838

积分

Rank: 5Rank: 5

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

回复 支持 反对

使用道具 举报

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

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
排名
5253
昨日变化
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 | 显示全部楼层
感谢分享

回复

使用道具 举报

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

本版积分规则

关闭

站长推荐 上一条 /1 下一条

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