开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:2234

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

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

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

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

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

63

主题

226

帖子

2738

积分

Rank: 9Rank: 9Rank: 9

UID
76890
好友
77
蛮牛币
3919
威望
0
注册时间
2015-3-4
在线时间
977 小时
最后登录
2018-6-20

专栏作家

发表于 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日久生情
2118/5000
排名
3437
昨日变化
3

8

主题

1095

帖子

2118

积分

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

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

回复

使用道具 举报

5熟悉之中
605/1000
排名
5131
昨日变化
42

0

主题

271

帖子

605

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

7日久生情
1796/5000
排名
2638
昨日变化
2

1

主题

892

帖子

1796

积分

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

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

回复

使用道具 举报

7日久生情
1757/5000
排名
2286
昨日变化
11

0

主题

713

帖子

1757

积分

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

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

回复

使用道具 举报

3偶尔光临
169/300
排名
12022
昨日变化
176

0

主题

54

帖子

169

积分

Rank: 3Rank: 3Rank: 3

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

回复

使用道具 举报

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

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熟悉之中
732/1000
排名
4147
昨日变化
25

0

主题

230

帖子

732

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

6蛮牛粉丝
1353/1500
排名
1403
昨日变化
4

10

主题

123

帖子

1353

积分

Rank: 6Rank: 6Rank: 6

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

回复 支持 反对

使用道具 举报

排名
702
昨日变化
2

63

主题

226

帖子

2738

积分

Rank: 9Rank: 9Rank: 9

UID
76890
好友
77
蛮牛币
3919
威望
0
注册时间
2015-3-4
在线时间
977 小时
最后登录
2018-6-20

专栏作家

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

回复 支持 反对

使用道具 举报

排名
702
昨日变化
2

63

主题

226

帖子

2738

积分

Rank: 9Rank: 9Rank: 9

UID
76890
好友
77
蛮牛币
3919
威望
0
注册时间
2015-3-4
在线时间
977 小时
最后登录
2018-6-20

专栏作家

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

0

主题

2021

帖子

2909

积分

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

UID
219676
好友
0
蛮牛币
2428
威望
0
注册时间
2017-7-12
在线时间
406 小时
最后登录
2018-6-20

活力之星

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

回复

使用道具 举报

5熟悉之中
794/1000
排名
5556
昨日变化
49

0

主题

416

帖子

794

积分

Rank: 5Rank: 5

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

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1346/1500
排名
2566
昨日变化
4

1

主题

488

帖子

1346

积分

Rank: 6Rank: 6Rank: 6

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

回复

使用道具 举报

6蛮牛粉丝
1344/1500
排名
5100
昨日变化
3

6

主题

821

帖子

1344

积分

Rank: 6Rank: 6Rank: 6

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

回复

使用道具 举报

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

本版积分规则

关闭

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

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