Unity背包UI数据管理方式

零碎想法记录,等做完了再整理。。。。。。。。

思考物品的保存:

从excel读入——>得到一堆字符串

对于每一关,每一个地图,剧情的每一阶段,都有对应的物品,对当前阶段,将对应字符串加载成游戏资源,对上一个阶段,释放不必要的游戏资源。

对于这些字符串,考虑加载成游戏资源,存放在Item及其派生类(此处可以考虑scriptableobject)里,通过ItemManager里用list管理,此处通过id查找对应的类实例。

在每一个阶段加载的物品,它可能在玩家,商人背包里,也有可能在野外掉落,也有可能在仓库里。我们把全游戏的物品用字符串方式存储;当前阶段的物品以游戏资源方式存储在ItemManager里,而玩家,商人背包,仓库,野外分别持有物品id。在背包里,需要物品的sprite,name,information,number,属性,特性。(由于对于id,sprite,number需求频繁,所以我想构建一个类专门存放背包中的物品,待定)

在玩家,商人背包,仓库,野外中可能需要的操作有:加入;删除;交换,减少,增加,升级;

完成后进行保存,保存每一个物品的字符串,和在玩家,商人背包,仓库,野外中的物品id。

假设玩家,仓库只有一个,但商人可以有很多个,每一个人都要分别记录他们的物品id。这里创建一个类挂在每一个owner实体上,每个owner都有一个标识码,都向itemManager注册,方便管理;(想法一:这个标识码通过字符串得到。这个标识码和owner阶段+位置+名字一一对应,这个标识码由excel读入,)(想法二:把所有owner做成prefab)(想法三:这个标识码放在scriptableobject)(想法四:直接inspecter面板赋值)

item游戏资源和item字符串只有sprite,prefab的区别,所以我考虑spritepath和sprite放在一起。

游戏全局物品放在txt里不读,只读当前阶段物品。

image+num(Item)——>slot——>inventory——>owner——>ItemManager

由下向上传递:item的id在每一个slot里面,向上传到inventory里面,向上传到owner里面,向上传到itemManager里面,由多到少,而id回来的时候,能够从itemManager回到owner再回到inventory,再回到slot。

不如构建一个类专门用来进行这种数据传递。

 

做背包有两层:UI层,数据层。要做的事情:1.UI操作;2.数据操作;3.UI和数据的交互;

UI操作

1.点击按钮;

2.打开,关闭页面;

3.拖动物体

 

数据操作:

1.存数据

2.读数据

3.字符串转游戏资源;游戏资源转字符串

4.删数据

 

UI交互数据:

1.点击触发点击事件;

2.拖动触发拖动事件

 

具体来讲:

1.启动游戏:字符串加载到内存,存放

2.部分字符串转游戏资源

3.打开背包的消耗品界面,看见每一个槽位有图片和数量

4.点击物品,出现信息介绍,出现“使用”,“丢弃”选项,点击使用,会有效果,点击丢弃,图标,数量消失,释放对应游戏资源,删除此位置的数据记录;点击空白处或点击关闭,信息介绍和选项消失;

5.拖动物品,可以和其他物品交换位置

6.点击关闭按钮,面板隐藏

7.获得一件物品,打开背包查看:此位置记录对应数据,加载对应游戏资源,看见该物品图标,数量;点击该图标,进行4步骤。观看结束,进行步骤6。

8.快捷使用药品,药品数据中数量减少,此时如果进行步骤3,则药品数量减少。如果药品用完,则删除此位置数据记录,释放对应游戏资源,此时如果进行步骤3,则清除图片,清除数量。

9.点击存档,则背包里的物品记录其id和路径(字符串),转成文本文件;

10.退出游戏,结束。

 

 

 

 

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值