您的位置:首页 > 移动开发 > Unity3D

【Unity&NGUI】背包系统物品的累加

2017-01-16 22:04 309 查看
写到背包系统物品的累加以及多背包显示,里面涉及很多代码,因此,把重复的代码,尽量用一个变量表示

由于写背包系统的时候,只要是触发器,和碰撞器,就会使得物体变成其子物体

于是添加了两个字符串变量 Attribute和BodyPart用来缩小范围使得,背包系统的有效范围在,背包和装备栏里面



为所有的装备栏框框、和背包框框装备上该 BackpackCellAttri.cs文件,并在U3D里面设置好对应的字符

Attribute = "BodyEquipment" ;

BodyPart在背包系统中是空的,在装备栏系统中采取对应的字符。

在背包物体预制体中的Backpack Item.cs中添加了物品的属性



        ItemStyle = "BodyEquipment" ;//物体从属于哪个属性

        ItemBelongBP = "Backpack1";//物体从属于哪个背包




这两个变量也是要声明,并且初始化进行数值设置的(没有直接说明的,需要自行设置)

    public int count;//物体当前数量

    public int ItemMax;//物品每一组 最大的数量

物体数量增加、和数量减少函数

为什么要使用new void start,因为这个脚本类继承了UIDragDropItem的成员,UIDragDropItem里面也有个start函数,子类为了区分父类,需要这样做

public class BackpackItem : UIDragDropItem



JudgetItem函数,主要互换物体的位置



OnDragDropRelease函数,这个是主要函数,很多重要的参数都是在这个函数里面完成的

由于是直接使用了OnDragDropRelease函数,因此并不需要使用其他函数对其调用,如果不知道的,请自行查阅我之前写的文章,以及相关资料

主要用于第一次判断,当物体需要交换位置的时候,首先判断格子是否是 满足条件 的 “背包格子”,或者是“装备栏”

由于[b] “背包格子”都添加了“装备栏”[b]BackpackCellAttri.cs文件用来区别其他的   碰撞体[/b][/b]

JudgetItem(surfaceR);

 private void JudgetItem(GameObject surface)//获得 目标物体 类型名字

相同的数字用来表示同样的层级,因为看起来很乱





#region endif(S_CC >= 1)内容如下图所示

#endregion





更正一下,177行的unitcount改为totalcount,该物体当前的 总共的数量



背包系统相关资料:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: