예제 #1
0
        /// <summary>
        /// 循环处理依赖关系
        /// </summary>
        /// <param name="bundleNmae"></param>
        public void DisposeBundle(string bundleNmae)
        {
            Debug.Log(bundleNmae);

            if (loadHelper.ContainsKey(bundleNmae))
            {
                IABRelationManager loader = loadHelper[bundleNmae];

                List <string> depences = loader.GetDependence();
                for (int i = 0; i < depences.Count; i++)
                {
                    if (loadHelper.ContainsKey(depences[i]))
                    {
                        IABRelationManager dependce = loadHelper[depences[i]];
                        if (dependce.RemoveReference(bundleNmae))
                        {
                            DisposeBundle(dependce.GetBundleName());
                        }
                    }
                }

                if (loader.GetReference().Count <= 0)
                {
                    loader.Dispose();
                    loadHelper.Remove(bundleNmae);
                }
            }
            else
            {
                Debug.Log("bundle is not exist ==" + bundleNmae);
            }
        }
예제 #2
0
        public void DisposeAllBundle()
        {
            List <string> keys = new List <string>();

            keys.AddRange(loadHelper.Keys);
            for (int i = 0; i < keys.Count; i++)
            {
                IABRelationManager loader = loadHelper[keys[i]];
                loader.Dispose();
            }

            loadHelper.Clear();
        }