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