Unity3d背包系统实现(包括UI设计以及代码框架
前言
来公司转眼一个多月了,大佬让我去做一个demo。起初要做一个一刀99级,哈哈,可是越来越偏,但是基础的rpg功能都是有了,比如,背包,任务,以及技能,哦对了,还有智障AI,哈哈,索性写一篇文章下分享下自己的实现方式(轻喷
背包UI设计
实现拖拽
- 判断是否点击了一个item(比如上图的一把剑)对象:
- 判断起始点点击的是哪一部分的item
- 然后在拖拽完之后判断鼠标抬起时点击的是哪一部分的item
第一种情况:如果是空白区域,return
第二种情况:如果是已穿戴的item,再对起始点点击的item分情况,如果起始点点击为空白区域,return等等
以此类推
4.这里是我所实现的接口
背包框架
- 采用了MVC的方式
CTRL:
MODEL:
- 初期写的时候我也很迷惑,该如何写类的方法,后面直到我把唯一数据也就是item的list在MODEL里权限改为private之后,就大致明了了,与数据有关的方法请写到MODEL里。
然后再去分析背包会有什么方法
- 放入物品–>引出的方法就是判断背包是否有空闲空间,那这个方法与数据有关,要写到MODEL里(记小本本,以及要有一个数据的添加,这个方法也要写到MODEL里
- 扔掉物品…
诸如此类,我相信,我代码会变得更好enmmm
数据存储
- 所有物品(装备和消耗品)信息存储
所有物品指的是这个游戏里的全部item,包括你得到的和尚未得到的
所以,背包代码的MODEL里的存储的全是itemName,如果想要获得物品信息,直接可以通过名字使用itemMgr.GetItemInfo来获取,避免数据不必要的错误。 - 背包内的物品存储
这里的保存我选择的是存成txt文件
分为三步,未穿戴装备,消耗品,以及已穿戴装备
结语
这里还是要感谢曾经玩过的DNF,十分完备的背包系统。