Ejemplo n.º 1
0
 public void ReleaseAllAB(bool force)
 {
     for (int i = 0; i < _assetBundles.Count; i++)
     {
         ABItem item = _assetBundles[i];
         if (item.referenceCount < 1)
         {
             item.ab.Unload(force);
         }
     }
     _assetBundles.RemoveAll(abItem => abItem.referenceCount < 1);
 }
Ejemplo n.º 2
0
        public ABItem BeginLoadABContain(string assetName)
        {
            // _assetBundlesTemp.Clear();

            string abName = GetABNameByAssetName(assetName);

            ABItem item = LoadABAndDependencies(abName);

            for (int i = 0; i < _assetBundlesTemp.Count; i++)
            {
                _assetBundlesTemp[i].referenceCount++;
            }

            return(item);
        }
Ejemplo n.º 3
0
 private void UnloadTemp(bool force)
 {
     for (int i = 0; i < _assetBundlesTemp.Count; i++)
     {
         ABItem item = _assetBundlesTemp[i];
         if (item.referenceCount < 1)
         {
             if (item.ab != null)
             {
                 item.ab.Unload(force);
             }
         }
     }
     _assetBundles.RemoveAll(abItem => abItem.referenceCount < 1);
 }
Ejemplo n.º 4
0
        private ABItem LoadABAndDependencies(string abName)
        {
            ABItem item = _assetBundles.Find(abItem => abItem.path == abName);

            if (item == null)
            {
                item = new ABItem(abName);
                _assetBundles.Add(item);
            }

            Assert.IsNotNull(_manifest);
            string[] dependencies = _manifest.GetDirectDependencies(abName);
            foreach (var dependency in dependencies)
            {
                LoadABAndDependencies(dependency);
            }
            _assetBundlesTemp.Add(item);
            return(item);
        }