public AssetBundle LoadAsset(string assetName) { string assetBundleName; if (localAssetBundleConfig.assetBundleRuleTypeDict[assetName] == AssetBundleRuleType.File) { assetBundleName = $"{MD5Util.ComputeMD5(assetName)}.unity3d"; } else { assetBundleName = $"{MD5Util.ComputeMD5(Path.GetDirectoryName(assetName).Replace("\\", "/"))}.unity3d"; } if (assetBundles.ContainsKey(assetBundleName)) { return((AssetBundle)assetBundles[assetBundleName]); } else { AssetBundle assetBundle = AssetBundle.LoadFromFile($"{PathUtil.GetPath(PathType.PersistentDataPath, "Res", PathUtil.GetPlatformForAssetBundle())}/{assetBundleName}"); string[] dependencies = assetBundleManifest.GetAllDependencies(assetBundleName); foreach (string item in dependencies) { assetBundles.Add(item, AssetBundle.LoadFromFile($"{PathUtil.GetPath(PathType.PersistentDataPath, "Res", PathUtil.GetPlatformForAssetBundle())}/{item}")); } assetBundles.Add(assetBundleName, assetBundle); return(assetBundle); } }
public void UnloadAsset(string assetName) { string assetBundleName = $"{MD5Util.ComputeMD5(assetName)}.unity3d"; if (assetBundles.ContainsKey(assetName)) { AssetBundle assetBundle = (AssetBundle)assetBundles[assetBundleName]; assetBundle.Unload(true); assetBundles.Remove(assetBundle); } }
public AssetBundle LoadAsset(string assetName) { string assetBundleName = $"{MD5Util.ComputeMD5(assetName)}.unity3d"; if (assetBundles.ContainsKey(assetName)) { return((AssetBundle)assetBundles[assetBundleName]); } else { AssetBundle assetBundle = AssetBundle.LoadFromFile($"{PathUtil.GetPath(PathType.PersistentDataPath, "Res", PathUtil.GetPlatformForAssetBundle())}/{assetBundleName}"); string[] dependencies = assetBundleManifest.GetAllDependencies(assetBundleName); foreach (string item in dependencies) { assetBundles.Add(item, AssetBundle.LoadFromFile($"{PathUtil.GetPath(PathType.PersistentDataPath, "Res", PathUtil.GetPlatformForAssetBundle())}/{item}")); } assetBundles.Add(assetName, assetBundle); return(assetBundle); } }