找回密码
 注册帐号

扫一扫,访问微社区

脚本 unity 单机关卡信息存储修改

12
回复
895
查看
[ 复制链接 ]
5熟悉之中
841/1000
排名
3457
昨日变化

1

主题

177

帖子

841

积分

Rank: 5Rank: 5

UID
238064
好友
3
蛮牛币
20726
威望
0
注册时间
2017-9-7
在线时间
232 小时
最后登录
2019-5-22
2018-8-4 14:57:32 显示全部楼层 阅读模式
5蛮牛币
unity C# 单机存储 问题
现在已知有一张关卡信息配置表:(先哪三个关卡做例子)关卡配置表:

id(关卡id)        isLock(是否解锁)        isPass(是否过关)
1                           true                                  false
2                           false                                  false
3                           false                                  false

我的需求是:    当我第一个关卡过关时,我需要修改关卡配置表里 第一关卡的 isPass 为true ,并且要修改第二个关卡的isLock 为true!

有什么方法实现我这个需求???

我没有做过单机游戏,不知道应该用什么形式处理这个需求;
我用了json做这个,C#处理json的写入方便,但是,修改特别麻烦。

我不知道单机应该用什么存储关卡信息比较方便;


各位大佬帮忙解决一下吧???谢谢各位!




回复

使用道具 举报

5熟悉之中
875/1000
排名
4149
昨日变化

14

主题

246

帖子

875

积分

Rank: 5Rank: 5

UID
231366
好友
9
蛮牛币
1666
威望
0
注册时间
2017-7-10
在线时间
259 小时
最后登录
2019-5-15
2018-8-4 14:57:33 显示全部楼层
可以用xml    json    字节数组   ,unity自带的PlayerPrefs.GetInt
回复

使用道具 举报

5熟悉之中
841/1000
排名
3457
昨日变化

1

主题

177

帖子

841

积分

Rank: 5Rank: 5

UID
238064
好友
3
蛮牛币
20726
威望
0
注册时间
2017-9-7
在线时间
232 小时
最后登录
2019-5-22
楼主 2018-8-4 14:58:39 显示全部楼层
各位大佬帮我解答呀一定要,第一次做这个样子的不知道怎么处理!
回复

使用道具 举报

7日久生情
3945/5000
排名
190
昨日变化

0

主题

338

帖子

3945

积分

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

UID
6412
好友
0
蛮牛币
12327
威望
0
注册时间
2013-10-26
在线时间
1398 小时
最后登录
2019-5-13

活力之星

2018-8-5 23:42:42 显示全部楼层
你现在的规则是不是通过一关,下一个解锁,那直接用PlayerPrefs.GetInt("levelIsPass", 0),里面存储的是第几关已经通过了,那么下一关就是解锁状态,不用存json,通过关卡,就把这个数据更新,PlayerPrefs.SetInt("levelIsPass",当前通过的关卡),你看看对不对
回复

使用道具 举报

7日久生情
2054/5000
排名
1058
昨日变化

13

主题

274

帖子

2054

积分

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

UID
99182
好友
0
蛮牛币
10141
威望
0
注册时间
2015-5-10
在线时间
719 小时
最后登录
2019-5-22
2018-8-6 10:50:36 显示全部楼层
完全没必要用什么islock和ispass。。你就用Unity自带的PlayerPrefs类,设置一个变量,比如int unlockLevel = 0;  满足过关条件就 用代码: int tmp = PlayerPrefs.GetInt("unlockLevel") + 1;       PlayerPrefs.SetInt("unlockLevel",tmp);   不满足过关条件就不改变unlockLevel的值呀。。然后再选择关卡界面获取unlockLevel的值来决定可以点击前几个关卡按钮
回复

使用道具 举报

7日久生情
2429/5000
排名
907
昨日变化

0

主题

54

帖子

2429

积分

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

UID
79366
好友
1
蛮牛币
2812
威望
0
注册时间
2015-3-13
在线时间
1247 小时
最后登录
2019-5-22
2018-8-6 17:35:55 显示全部楼层
之前公司是做单机游戏,用的GameDataEditor插件,具体的实现也是使用PlayerPrefs类,你可以试试这个插件。
回复

使用道具 举报

5熟悉之中
841/1000
排名
3457
昨日变化

1

主题

177

帖子

841

积分

Rank: 5Rank: 5

UID
238064
好友
3
蛮牛币
20726
威望
0
注册时间
2017-9-7
在线时间
232 小时
最后登录
2019-5-22
楼主 2018-8-7 15:52:55 显示全部楼层
Z_Sprite 发表于 2018-8-5 23:42
你现在的规则是不是通过一关,下一个解锁,那直接用PlayerPrefs.GetInt("levelIsPass", 0),里面存储的是第 ...

谢谢大佬,我现在用json已经实现了我目前临时需要的功能。
我是通过修改json中的数据实现的。
回复

使用道具 举报

5熟悉之中
841/1000
排名
3457
昨日变化

1

主题

177

帖子

841

积分

Rank: 5Rank: 5

UID
238064
好友
3
蛮牛币
20726
威望
0
注册时间
2017-9-7
在线时间
232 小时
最后登录
2019-5-22
楼主 2018-8-7 15:55:16 显示全部楼层
安生李 发表于 2018-8-6 09:00
可以用xml    json    字节数组   ,unity自带的PlayerPrefs.GetInt

我还是用的json实现的。谢谢大佬解答!!!
回复

使用道具 举报

5熟悉之中
841/1000
排名
3457
昨日变化

1

主题

177

帖子

841

积分

Rank: 5Rank: 5

UID
238064
好友
3
蛮牛币
20726
威望
0
注册时间
2017-9-7
在线时间
232 小时
最后登录
2019-5-22
楼主 2018-8-7 15:56:55 显示全部楼层
Kasug 发表于 2018-8-6 10:50
完全没必要用什么islock和ispass。。你就用Unity自带的PlayerPrefs类,设置一个变量,比如int unlockLevel ...

谢谢大佬解答,我还是用的json解决的问题。因为还是需要存储一些关卡回答过得问题之类的。所以用playerPrefs有些局限。
回复

使用道具 举报

5熟悉之中
841/1000
排名
3457
昨日变化

1

主题

177

帖子

841

积分

Rank: 5Rank: 5

UID
238064
好友
3
蛮牛币
20726
威望
0
注册时间
2017-9-7
在线时间
232 小时
最后登录
2019-5-22
楼主 2018-8-7 15:59:18 显示全部楼层
飞扬_520 发表于 2018-8-6 17:35
之前公司是做单机游戏,用的GameDataEditor插件,具体的实现也是使用PlayerPrefs类,你可以试试这个插件。 ...

谢谢大佬解答!因为我这个是临时需要存储本地,最后上线之前还是会改成联机游戏。在网上偶然发现有修改json的例子,自己试了两个小时,实现了我想要的功能。
回复

使用道具 举报

5熟悉之中
841/1000
排名
3457
昨日变化

1

主题

177

帖子

841

积分

Rank: 5Rank: 5

UID
238064
好友
3
蛮牛币
20726
威望
0
注册时间
2017-9-7
在线时间
232 小时
最后登录
2019-5-22
楼主 2018-8-7 16:05:46 显示全部楼层
我这个问题已经解决了。那么我怎么把这个帖子设置成已经解决呢?

解决步骤:
还是用的保存到json中

//1. 给json中的指定块赋值
jsonData["isUnlock"][i] = isLock;
//2. 保存到json文件中
//3. 需要同时修改多条数据时,修改完第一条保存之后,需要先读取一遍json文件(相当于要刷新一遍),然后,在修改保存第二条数据。(PS:注意,需要同时修改多条时,中间一定要先读取一次,不然第二条修改不进去的。亲测!!!)
回复

使用道具 举报

5熟悉之中
629/1000
排名
5576
昨日变化

7

主题

183

帖子

629

积分

Rank: 5Rank: 5

UID
288872
好友
3
蛮牛币
1213
威望
0
注册时间
2018-7-7
在线时间
185 小时
最后登录
2019-5-22
QQ
2018-8-17 13:58:20 显示全部楼层
{:106:}{:106:}
回复

使用道具 举报

6蛮牛粉丝
1194/1500
排名
2867
昨日变化

9

主题

257

帖子

1194

积分

Rank: 6Rank: 6Rank: 6

UID
196727
好友
0
蛮牛币
1621
威望
0
注册时间
2016-12-28
在线时间
404 小时
最后登录
2019-5-21

迈向小康

2019-2-15 12:04:28 显示全部楼层
ScriptableObject类了解一下?
回复

使用道具 举报

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

本版积分规则