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); } }
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>(); } }