Beispiel #1
0
    /// <summary>
    /// returns an object to pool
    /// </summary>
    /// <param name="obj">object to return</param>
    /// <returns>true if obj belongs to the pool, false otherwise</returns>
    public bool returnObjectToPool(GameObject obj, POOLTYPE type = POOLTYPE.DEFAULT)
    {
        ObjectPoolItem objectPoolItem;

        if (type == POOLTYPE.DEFAULT)
        {
            if (dicItemsToPool.TryGetValue(obj.name, out objectPoolItem))
            {
                return(objectPoolItem.returnObjectToPool(obj));
            }
        }
        else if (type == POOLTYPE.UI)
        {
            if (dicUIToPool.TryGetValue(obj.name, out objectPoolItem))
            {
                return(objectPoolItem.returnObjectToPool(obj));
            }
        }

        else if (type == POOLTYPE.PARTICLE)
        {
            if (dicParticleToPool.TryGetValue(obj.name, out objectPoolItem))
            {
                return(objectPoolItem.returnObjectToPool(obj));
            }
        }
        return(false);
    }
Beispiel #2
0
    /// <summary>
    /// gets a pooled object with specified name
    /// </summary>
    /// <returns>pooled object</returns>
    /// <param name="name">name</param>
    public GameObject getPoolObject(string name, POOLTYPE type = POOLTYPE.DEFAULT)
    {
        switch (type)
        {
        case POOLTYPE.DEFAULT:
            return(dicItemsToPool[name].getPoolObject());

        case POOLTYPE.UI:
            return(dicUIToPool[name].getPoolObject());

        case POOLTYPE.PARTICLE:
            return(dicParticleToPool[name].getPoolObject());

        default:
            break;
        }

        return(null);
    }