栈代表了一个后进先出的对象集合。
Pop:返回Stack(栈)里的最后储存的对象并删除
Push() 向Stack(栈)中的最后储存的对象后添加一个对象
Count 获取Stack(栈)中包含的元素个数
Peek() 返回在Stack(栈)最后储存的对象 但不删除它
下面是栈的的运用,
private Stack<GameObject> m_Stack = new Stack<ItemToast>();//栈的声明,并实例化
public GameObject m_Item; //要实现的对象
public Transform m_Transform ;//实现的对象的父节点;
//获取创建对象
private GameObject GetItem()
{
var item = m_Stack.Count < 1 ? null : m_Stack.Pop();//如果栈里的对象小于1取空,不小于1取最后存储的对象并删除,这样写可以减少克隆的使用从而提高性能
if (item == null)//如果栈为空克隆对象
{
item = Instantiate(m_Item, m_Transform );//克隆对象
}
itemTransform.localPosition = Vector3.zero;//相对父节点的对象位置
m_Stack .Push(item);//把对象存储到栈中
reture item ;
}
private void Show()//这里可以传您需要的参数
{
var item = GetItem();
}
//更新
private void Update()
{
Show();
}
后进先出就如同一个杯子先放进去的东西在最底下,后放的东西在最上面。
这样就好理解很多。