Example #1
0
    private static ObjectPool GetObjectPool(RecycledGameObject reference)
    {
        ObjectPool pool = null;

        if (GameObjectsPool.ContainsKey(reference))
        {
            pool = GameObjectsPool[reference];
        }
        else
        {
            var poolContainer = new GameObject(reference.gameObject.name + "ObjectPool");
            pool        = poolContainer.AddComponent <ObjectPool>();
            pool.prefab = reference;
            GameObjectsPool.Add(reference, pool);
        }
        return(pool);
    }
Example #2
0
    public RecycledGameObject NextGameObject(Transform parentTransform)
    {
        RecycledGameObject instance = null;

        foreach (var gO in poolGameObjects)
        {
            if (gO.gameObject.activeSelf != true)
            {
                instance = gO;
                instance.transform.SetParent(parentTransform);
            }
        }
        if (instance == null)
        {
            instance = CreateGameObject(parentTransform);
        }

        instance.Restart();

        return(instance);
    }
Example #3
0
    public RecycledGameObject NextGameObject(Vector3 position)
    {
        RecycledGameObject instance = null;

        foreach (var gO in poolGameObjects)
        {
            if (gO.gameObject.activeSelf != true)
            {
                instance = gO;
                instance.transform.position = position;
            }
        }
        if (instance == null)
        {
            instance = CreateGameObject(position);
        }

        instance.Restart();

        return(instance);
    }