Beispiel #1
0
        public static Pool GetPool(PooledMonoBehaviour prefab)
        {
            if (Pools.ContainsKey(prefab))
            {
                return(Pools[prefab]);
            }

            var poolGameObject = new GameObject("Pool - " + prefab.name);
            var pool           = poolGameObject.AddComponent <Pool>();

            if (!SceneManager.GetSceneByName(_poolSceneName).isLoaded)
            {
                SceneManager.LoadScene(_poolSceneName, LoadSceneMode.Additive);
            }

            SceneManager.MoveGameObjectToScene(poolGameObject, SceneManager.GetSceneByName(_poolSceneName));

            pool._prefab = prefab;

            Pools.Add(prefab, pool);
            return(pool);
        }
Beispiel #2
0
 private void AddObjectToAvailableQueue(PooledMonoBehaviour pooledObject)
 {
     pooledObject.transform.SetParent(transform);
     _objects.Enqueue(pooledObject);
 }