Ejemplo n.º 1
0
    private T CreateNewPooledItem()
    {
        PooledItems <T> pooledItem = new PooledItems <T>();

        pooledItem.Item   = CreateItem();
        pooledItem.isUsed = true;
        pooledItems.Add(pooledItem);
        Debug.Log("New Item Added" + pooledItems.Count);
        return(pooledItem.Item);
    }
Ejemplo n.º 2
0
    public virtual T GetItem()
    {
        if (pooledItems.Count > 0)
        {
            PooledItems <T> item = pooledItems.Find(i => i.isUsed == false);
            if (item != null)
            {
                item.isUsed = true;
                return(item.Item);
            }
        }

        return(CreateNewPooledItem());
    }
Ejemplo n.º 3
0
    public virtual void ReturnItem(T item)
    {
        PooledItems <T> pooledItem = pooledItems.Find(i => i.Item.Equals(item));

        pooledItem.isUsed = false;
    }
Ejemplo n.º 4
0
 public override void Dispose()
 {
     PooledItems.ForEach(Object.Destroy);
 }
Ejemplo n.º 5
0
 public override void Dispose()
 {
     PooledItems.ForEach(it => it.Dispose());
 }