コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }