Unity3D-Stack(栈)

栈代表了一个后进先出的对象集合。

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();
}

后进先出就如同一个杯子先放进去的东西在最底下,后放的东西在最上面。

这样就好理解很多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值