技能系统,背包系统,

商店系统,药品,武器,UI管理系统

战斗系统,人物成长系统 ,敌人系统

数据都是 分离出来的。耦合性比较低

 

敌人战斗系统  敌人AI   实现方法和原作者不太一样

技能系统,治疗效果,

背包商店系统

背包方面原作者有很多bug,这里都一一解决了,shop是一个Panel,背包是另一个Panel ,在NGUI里面,层级是panel与panel比,同个panel下Widget下的Depth越高,越优先显示。不同panel中的depth越高越优先显示。 这里用了NGUI的富文本,字体很酷,不过NGUI中不支持(同个Label下设置不同字体大小)。

这里背包系统说下思路,显示和数据要进行分离, 用MVC模式,一个

数据层(模型层)

用一个父类Item类 该类提供一个构造函数

然后 又分 药品类,装备类,材料类等等等…

然后如何进行初始化呢,可以通过读取 json Excel Text…很多种方式进行实现,这里 用的是原来的方法 用Text实例化

上面这个类对外部提供GetById方法 得到装备数据,ReadInfo 方法进行读取Text中的数据。

视图,控制层

Inventory类 管理背包下所有的格子Item-grid,

 

然后 把Item-grid做成Prefabs,在grid下面 要放一个Label显示 当前数量。

 

每个格子的负责功能就是 通过给的物品Id进行显示,通过id进行存储,提供PlusNumber和MinNumber方法增减,和显示物品信息,SetI方法,Clear方法

接下来就是背包Item类了。主要实现交互功能。

grid和 item都有SetId 方法,方便读取存取。

OnDesEnter(),OnDesExit()是控制装备数据信息的显示。

通过 UICamera.currentCamera.ScreenToWorldPoint(Input.mousePosition) 可以把当前屏幕坐标转成世界坐标。要注意把中心轴Widget下的pivot设置在左上角,这样不会造成bug.最好就是做多个Label来显示。

最后附上的我csdn

https://blog.csdn.net/qq2512667/article/details/81418125

这个是UGUI的背包系统

发表评论

电子邮件地址不会被公开。 必填项已用*标注

跳至工具栏