unity背包和拾取系统的制作(一)

第一部分:背包的UI制作:

在这里插入图片描述
BagCanvas是 Canvas组件,EquipmentBag是一个Image组件,用来充当整体背包的背景;Grid_01是一个空物体,在上面附加一个Grid Layout Group组件,用来进行一个网格的水平布局;Ucell是Image组件,作为格子的背景
在这里插入图片描述
还有一个 UItem组件也是一个Image类型,第一个text子组件显示物体的数量,放在图片右下角可以;Reduce组件是作为物品介绍(这里其实应该命名为 introduce,鬼知道怎么想成了 Reduce - ,-),这是一个panel类型,子组件是Text类型,用来显示物品属性。 显示不同的物体就是替换掉UItem的Sprite,然后根据不同的信息显示相应的介绍。这里的UItem组件做成预制体,前面的Ucells也做成预制体。

先说整体思路:
1.图片的显示,将UItem生成为Ucells的子物体,然后替换掉 UItem上面的Sprite,然后显示不同的图片。
2.物品的交换:通过继承IBeginDragHandler, IEndDragHandler, IDragHandler三个接口,实现里面的方法来完成物品的拖拽和交换等功能
3.多背包的切换,我是通过三个按钮
在这里插入图片描述
每个按钮控制不同背包,点击某个背包的时候,就通过绑定事件隐藏另外两个背包就行。
***4.物品的存储:***写一个总的物品类 Item类,然后通过不同子类实现不同的物品总属性,然后在构造方法里面给不同的物品赋值,那物品信息怎么存储呢?看了一下网上的方法,一般就是要不使用数据库,但是这个可能对于物品特别多的时候很好用,建立一个表来存储;另一种方法使用json文件的方式存储信息,然后通过解析json文件来读取物品信息。 我为了追求方便一点,而且我要存储的物品也不多,就用了另一种方法,我把物品信息分类存储在了三个 Dictionary之中,然后通过一个Search方法,读取里面的值。

5.物品的拾取,通过一个圆形的区域检测,来对比拾取范围内物品的tag,然后根据不同的tag,到对应的Dictionary中进行查询,对应的key值,就是物品的name,通过name来查询最终的物品信息,然后读取资源里面相应的图片,放到背包之中,然后销毁物体,完成拾取功能。
在这里插入图片描述
最终结果图(丑是真的丑,但我比较注重功能,嗯,一定是这样)

  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值