示例#1
0
 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;
 }
示例#2
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();
        }