public object getAsset(string key) { AssetsInfor ai = (AssetsInfor)(assetsMap [key]); if (ai != null) { return(ai.asset); } return(null); }
public void addAsset(string key, string name, AssetBundle asset, Callback onRealse) { AssetsInfor ai = new AssetsInfor(); ai.name = name; ai.lastUsedTime = System.DateTime.Now.ToFileTime(); ai.usedCount = 0; ai.asset = asset; ai.doRealse = onRealse; ai.key = key; assetsMap [key] = ai; }
public void releaseAsset(bool isForceRelease) { try { if (isPuase && !isForceRelease) { return; } AssetsInfor ai = null; ArrayList list = new ArrayList(); list.AddRange(assetsMap.Values); bool isHadRealseAssets = false; for (int i = 0; i < list.Count; i++) { ai = (AssetsInfor)(list [i]); if (ai == null) { continue; } if (ai.usedCount <= 0 && ((System.DateTime.Now.ToFileTime() - ai.lastUsedTime) / 10000000 > realseTime || isForceRelease)) { if (ai.doRealse != null) { ai.doRealse(ai.name); } assetsMap.Remove(ai.key); if (ai.asset != null) { ai.asset.Unload(true); ai.asset = null; } ai = null; isHadRealseAssets = true; } } // UnityEngine.Resources.UnloadUnusedAssets(); list.Clear(); list = null; if (isHadRealseAssets) { //这种情况是处理当图片已经destory了,材质球却未来得及destory的情况 releaseAsset(isForceRelease); } } catch (System.Exception e) { Debug.LogError(e); } }
public void useAsset(string key) { AssetsInfor ai = (AssetsInfor)(assetsMap [key]); if (ai != null) { ai.usedCount++; ai.lastUsedTime = System.DateTime.Now.ToFileTime(); assetsMap [key] = ai; #if UNITY_EDITOR if (!string.IsNullOrEmpty(debugKey) && key.Contains(debugKey)) { Debug.LogWarning(ai.usedCount + "====useAsset===" + key); } #endif } }
public void unUseAsset(string key) { AssetsInfor ai = (AssetsInfor)(assetsMap [key]); if (ai != null) { ai.usedCount--; if (ai.usedCount < 0) { Debug.LogError("[" + ai.key + "] is use time less then zero!!"); ai.usedCount = 0; } ai.lastUsedTime = System.DateTime.Now.ToFileTime(); assetsMap [key] = ai; #if UNITY_EDITOR if (!string.IsNullOrEmpty(debugKey) && key.Contains(debugKey)) { Debug.LogWarning(ai.usedCount + "===unUseAsset====" + key); } #endif } }