public void Add(AssetInfo asset) { LoadedModuleAsset loaded; if (!dict.TryGetValue(asset.name, out loaded)) { loaded = LoadedModuleAsset.Spawn(); loaded.assetInfo = asset; dict.Add(asset.name, loaded); if (maxAssetCount < dict.Count) { maxAssetCount = dict.Count; } } loaded.referencedCount++; }
public void Unload() { willRemoveKeys.Clear(); foreach (var kvp in dict) { if (!AssetManagerSetting.dontUnloadAssetFileList.Has(kvp.Key)) { // assetManager.Unload(kvp.Value.assetInfo.name, kvp.Value.referencedCount, moduleId == MenuType.WarScene); assetManager.Unload(kvp.Value.assetInfo.name, kvp.Value.referencedCount); LoadedModuleAsset.Despawn(kvp.Value); willRemoveKeys.Add(kvp.Key); } } for (int i = willRemoveKeys.Count - 1; i >= 0; i--) { dict.Remove(willRemoveKeys[i]); } willRemoveKeys.Clear(); }
public static void Despawn(LoadedModuleAsset item) { item.assetInfo = null; item.referencedCount = 0; pool.Push(item); }