Unity3d背包系统实现(包括UI设计以及代码框架

前言

来公司转眼一个多月了,大佬让我去做一个demo。起初要做一个一刀99级,哈哈,可是越来越偏,但是基础的rpg功能都是有了,比如,背包,任务,以及技能,哦对了,还有智障AI,哈哈,索性写一篇文章下分享下自己的实现方式(轻喷

背包UI设计

Unity3d背包系统实现(包括UI设计以及代码框架

实现拖拽

  1. 判断是否点击了一个item(比如上图的一把剑)对象:
    Unity3d背包系统实现(包括UI设计以及代码框架
  2. 判断起始点点击的是哪一部分的itemUnity3d背包系统实现(包括UI设计以及代码框架
  3. 然后在拖拽完之后判断鼠标抬起时点击的是哪一部分的item

第一种情况:如果是空白区域,return
第二种情况:如果是已穿戴的item,再对起始点点击的item分情况,如果起始点点击为空白区域,return等等
以此类推

4.这里是我所实现的接口
Unity3d背包系统实现(包括UI设计以及代码框架

背包框架

  1. 采用了MVC的方式
    CTRL:
    Unity3d背包系统实现(包括UI设计以及代码框架
    MODEL:
    Unity3d背包系统实现(包括UI设计以及代码框架
  2. 初期写的时候我也很迷惑,该如何写类的方法,后面直到我把唯一数据也就是item的list在MODEL里权限改为private之后,就大致明了了,与数据有关的方法请写到MODEL里。
    然后再去分析背包会有什么方法
  1. 放入物品–>引出的方法就是判断背包是否有空闲空间,那这个方法与数据有关,要写到MODEL里(记小本本,以及要有一个数据的添加,这个方法也要写到MODEL里
  2. 扔掉物品…
    诸如此类,我相信,我代码会变得更好enmmm

数据存储

  1. 所有物品(装备和消耗品)信息存储
    所有物品指的是这个游戏里的全部item,包括你得到的和尚未得到的
    Unity3d背包系统实现(包括UI设计以及代码框架
    所以,背包代码的MODEL里的存储的全是itemName,如果想要获得物品信息,直接可以通过名字使用itemMgr.GetItemInfo来获取,避免数据不必要的错误。
  2. 背包内的物品存储
    这里的保存我选择的是存成txt文件
    Unity3d背包系统实现(包括UI设计以及代码框架
    分为三步,未穿戴装备,消耗品,以及已穿戴装备

结语

这里还是要感谢曾经玩过的DNF,十分完备的背包系统。