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); }
private void AddObjectToAvailableQueue(PooledMonoBehaviour pooledObject) { pooledObject.transform.SetParent(transform); _objects.Enqueue(pooledObject); }