public GameObject GetPooledObject(GameObject prefabToUse, PoolObjectSettings settings) { if (prefabToUse != null) { if (this.poolPrefabManagerDictionary.ContainsKey(prefabToUse)) { return(this.poolPrefabManagerDictionary[prefabToUse].GetObjectFromPool(settings)); } else { TypePoolManager typePoolManager = new TypePoolManager(); typePoolManager.poolPrefabToUse = new PoolPrefab() { prefab = prefabToUse }; this.activePoolManagers.Add(typePoolManager); this.poolPrefabManagerDictionary.Add(prefabToUse, typePoolManager); return(typePoolManager.GetObjectFromPool(settings)); } } else { Debug.Log("Call to PoolManager with null prefab!"); } return(null); }