示例#1
0
 public void Despawn(GameObject inst)
 {
     inst.SetActive(false);
     if (this.dictInstanceCache.ContainsKey(inst.name))
     {
         ProtoPoolItem item = this.dictInstanceCache[inst.name];
         item.occupiedList.Remove(inst);
         item.availableList.Add(inst);
     }
 }
示例#2
0
        public void CleanAll(bool includeCommon)
        {
            List <string> list = new List <string>(this.dictInstanceCache.Keys);

            foreach (string str in list)
            {
                ProtoPoolItem item = this.dictInstanceCache[str];
                if (includeCommon || !item.isCommon)
                {
                    int num   = 0;
                    int count = item.availableList.Count;
                    while (num < count)
                    {
                        UnityEngine.Object.Destroy(item.availableList[num]);
                        num++;
                    }
                    item.availableList.Clear();
                    int num3 = 0;
                    int num4 = item.occupiedList.Count;
                    while (num3 < num4)
                    {
                        UnityEngine.Object.Destroy(item.occupiedList[num3]);
                        num3++;
                    }
                    item.occupiedList.Clear();
                    this.dictInstanceCache.Remove(str);
                }
            }
            if (includeCommon)
            {
                this.dictInstanceCache.Clear();
                if (this._instanceRoot != null)
                {
                    UnityEngine.Object.Destroy(this._instanceRoot.gameObject);
                    this._instanceRoot = null;
                }
                this._preloadedEffectGroupNames.Clear();
            }
            else
            {
                for (int i = 0; i < this._preloadedEffectGroupNames.Count; i++)
                {
                    PreloadGroupEntry entry = this._preloadedEffectGroupNames[i];
                    if (!entry.isCommon)
                    {
                        this._preloadedEffectGroupNames[i] = null;
                    }
                }
                this._preloadedEffectGroupNames.RemoveAllNulls <PreloadGroupEntry>();
            }
        }