好了,开始进入正题!
先给出部分效果图:
背包是用来存放角色在游戏中获得的物品,箱子是用来临时保存物品的(只有保存功能),角色面板是用来模拟给角色装备物品的,武器,服饰等,最右边红色字体的面板是用来显示当前装备下角色的各个属性总和。
商贩面板功能主要是用来给玩家购买物品和卖掉自己物品,另外看到左边黑色的那块(里面的字体五颜六色的),用来显示每个物品的属性。还有右上角的硬币图样用来显示玩家当前拥有的钱币,玩家向商贩买装备时钱币减少,把背包里的装备卖给商贩时钱币增加,只是买卖的价格不同。
锻造面板用来给玩家提供锻造功能,玩家可以使用背包里的符合锻造需求的物品锻造更厉害物品。具体的锻造需求先不作介绍,后续介绍。
还有最重要的UML类图,看懂这个基本就大概地搞定这个所谓的装备系统了:
这里先让大家理解个大概思路,从全局掌握开始:先看UML图的左边,左边并没有涉及到U3d里UI的各种变换逻辑,只是用来单纯的处理物品数据的存储和获取之类的。每个装备物品Item都有自己的属性(id,name什么的),然后物品类左边的是两个枚举,用来补充物品的类型和品质。接着,由物品类根据物品类型枚举衍生出具有特殊功能的四个子类:消耗品(如血瓶啊,蓝瓶等),装备类(主要是玩家装扮用),武器就不说了,材料类(用来锻造更好的物品)。补充:装备类也有不同的类型,就好比上衣只能穿在上身,裤子只能在下身,所以也用一个枚举来加以区分。武器也同样分为主手武器(一般是右手拿着)和副手武器(左手)。
接下来,看UNL图的右边部分:右边就是用来处理涉及到U3d里UI的各种变换逻辑了。首先,每一个物品的各种属性信息都放在一个Json里(如果不懂Json自己谷歌或百度哈,这里不再赘述!),由物品管理器负责解析,当然物品管理器也负责一些提示框(ToolTip)(也就是上面介绍的五颜六色字体的那个黑块)面板的显示和隐藏。Inventory(存货)类,是每个装备面板的基类,为什么这样设计呢,因为下面的每一个功能面板(子类),都有很多相同的方法,所以在基类Inventory中就先写好,这样就算子类增加功能重写父类方法也完全可以。inventory下面的每一个子类上面图中都已经介绍过,不再赘述。Slot物品槽类,对应图中存放每个物品的地方,主要用来实现存储物品功能,注意,它也是一个基类,因为每一个面板的物品槽的功能会有差异(后续介绍)。ItemUI类,见名之意,是物品在UI中的实际体现,只有两个属性,物品和物品的数量,如上面图中的物品显示UI。
总体感觉有些MVC的影子,M:用来存储物品信息的Json文件和UMl图中左边的各种类,V:在Unity中的具体UI显示,C:UML图中右边管理类。 好了,终于把全局大概给总结性地介绍完了,细节后续更新哈。有疑问欢迎交流。:-D