public void OnRecycle() { //归还 infoNode.RemoveOriginalAssetRequester(string.Format("PrefabAssetNode_{0}", assetName)); if (parentNode != null) { GameObject.Destroy(parentNode.gameObject); parentNode = null; } assetName = string.Empty; originPrefab = null; prefabPool.Clear(); poolCapacity = 0; }
//归还所有 public void ReturnAll() { //归还对prefab的占用 if (prefabRequests != null && prefabRequests.Count > 0) { foreach (var item in prefabRequests) { if (item.Value != null && item.Value.Count > 0) { for (int i = 0; i < item.Value.Count; i++) { item.Value[i].Requester = string.Empty; } } item.Value.Clear(); } prefabRequests.Clear(); } //归还对original的占用 if (originalRequests != null && originalRequests.Count > 0) { AssetBundleInfoNode node = null; foreach (var bundle in originalRequests) { node = ResourceManager.Instance.Get(bundle, false); if (node != null) { node.RemoveOriginalAssetRequester(requester); } } originalRequests.Clear(); } CheckEmpty(); }