Unity-背包系统-模块化UI管理

UI的设计
(1)这里使用一个2D归零物体进行管理所有的UI , 假期的时候看过一个 视频,父级物体的归零有可能导致子级的数据发生改变,这里可能会翻车,所以。慎用吧。
(2)使用一个 背包管理者管理所有的UI ,它们的关系就像是这样的;
同级之间是不进行交流的,通过它们提供的渠道进行传播消息。
在这里插入图片描述
在这里插入图片描述
(3)UI 开发的过程中,发现了 主角自己的背包和 npc的商店之间会有一些共有的功能,这里相当于在它和 Manager之间还有一层关系。
(4)介于 Knapsack 和 Inventory 之间的这层关系还是有点难以理解 的,经过了反复的测试之后,算是明白了这其中的奥义了;它们的 关系就像是这样的。
在这里插入图片描述
Inventory 存货里面可以写入一个集合用来保存所有的物品信息,得到的物品全部保存 在 slot下面,也就是这个里面,在存货类里面也就是Inventory类中写上一个有返回的有参的方法,如果是id 相同的返回true 直接使用InventoryManager 里面写入的存入方法并使用Inventory判断进行存储到Item数据类中,如果id不相同的话返回 false,并且提示没有找到该类型的物品。这里使用的是id进行存储和查找。
这个地方的逻辑还是有点绕的。另外就是判断物品槽中的物品是是否已经放满或者物品槽是否为空,暂时先不进行考虑,
(5)物品从 另一个地方到当前的位置的话还应该做的一件事情就是判断当前的物品槽是否还能够装得下物品,这也是一个比较棘手的问题。
这里的解决方法是再次重写一个查找背包中空的物品槽,也就是遍历一遍所有的物品槽,我这里的设计是 物品槽 一对一 一对多 一对空的原理,也就是说相同类型的物品可以有1个或者多个,当物品类型的Id不同的时候就会进行遍历查找到空的物品槽然后再进行存储。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值