public GameObject InstantiateAPS(string itemType, bool setActive = true) { GameObject newObject = GetPooledItem(itemType); if (setActive) { if (newObject == null) { DGLogger.Log("Wtf " + itemType); } newObject.SetActive(true); } return(newObject); }
private GameObject GetPooledItem(string itemType) { for (int i = 0; i < poolingItems.Count; i++) { if ((poolingItems[i].name == "" && poolingItems[i].prefab.name == itemType) || (poolingItems[i].name != "" && poolingItems[i].name == itemType)) { if (poolingItems[i].pooledItems.Count > 0) { GameObject returnGameObject = poolingItems[i].pooledItems[0]; poolingItems[i].pooledItems.Remove(returnGameObject); return(returnGameObject); } /*for (int j = 0; j < pooledItems[i].Count; j++) * { * * GameObject returnGameObject = pooledItems[i][j]; * pooledItems[i].RemoveAt(j); * return returnGameObject; * * }*/ if (poolExpand) { DGLogger.Log("EXPAND POOLING" + poolingItems[i].prefab.name); GameObject newItem = (GameObject)Instantiate(poolingItems[i].prefab, transform, true); newItem.SetActive(false); poolingItems[i].allPooledItems.Add(newItem); //pooledItems[i].Add(newItem); newItem.transform.SetParent(transform); return(newItem); } break; } } return(null); }