【Unity】NGUI背包系统——背包整理按钮的实现

整理背包有两种思路

1.替换父类子类物体

2.改变物体的相对父类的坐标


这两者的区别在于前者需要找到父类或者子类物体

后者则相对简单,只用知道父类格子的坐标,然后替换就行了


查找算法,类似与C++的冒泡算法,主要是要找到空的格子。

可以参考下面

Unity3D--UGUI背包系统(三)

作者: Wei_Boom


在前面新增了一个功能,查看背包是否满了

public bool isfull = false;
背包是否满了的函数

private void isFull()
	{
		int isFullInt = 0;
		for (int i=0; i < cells.Length; i++)
		{
			if(cells[i].transform.childCount>0)
			{
				isFullInt++;
			}
			if(isFullInt == cells.Length)
			{
				isfull = true;
			}
		}
		print ("BagisFull?"+isfull);
	}//

public void BagClear()
	{
		int k = 0;
		int i = 0;
		for (i = 0; i < cells.Length; i++)
		{
			if(cells[i].transform.childCount == 0)
			{
				k = i;
				break;
			}
			print("1");
		}
		print("2");
		for (int j = i; j < cells.Length; j++)
		{
			if(cells[j].transform.childCount > 0)
			{
				GameObject go1 = cells[j].transform.FindChild("Item(Clone)").gameObject;
				go1.transform.SetParent(cells[k].transform);
				go1.transform.localPosition=Vector3.zero;  
				break;
			}
		} 
	}//
查找方法类似与冒泡排序法


调试按钮的时候发现当按钮一直按的时候该物体会主动创建Tween Color

这个控件有个调用方法On Finished

调用的是我的背包的物体的公共函数BagClear函数

也就是上图所示的代码


ClearButton的设置如下两个图片所示

NGUI - Tween - Cloor

【Unity】NGUI背包系统——背包整理按钮的实现_第1张图片


改变了按钮按压时候的颜色,改变了运行所需时间为Transition 2S

【Unity】NGUI背包系统——背包整理按钮的实现_第2张图片




你可能感兴趣的:(Unity,NGUI,Tween)