public static void ObtainNetwork(BundleData bundleData, Action <string, float, bool> handler = null) { var sourceFile = Helper.GetDataPath(bundleData.bundleName); if (bundleData.bundleInPack) { sourceFile = "file:///" + Helper.GetInternalPath(bundleData.bundleName); } Instance.StartCoroutine(Obtain(sourceFile, bundleData.bundleName, bundleData.bundleHash128, handler)); }
static void CacAssetBundleSize() { var BundlePath = BundleSavePath + "/"; var srcAMF = BundlePath + Helper.BundleSaveName; if (File.Exists(srcAMF)) { var ab = AssetBundle.LoadFromFile(srcAMF); var abm = ab.LoadAsset <AssetBundleManifest>("AssetBundleManifest"); ab.Unload(false); // Create Map from asset to AssetBundle. var data = new BundleDatas(); var bundles = abm.GetAllAssetBundles(); foreach (var bundle in bundles) { var bd = new BundleData { bundleInPack = false, bundleName = bundle, bundleHash128 = abm.GetAssetBundleHash(bundle), bundleDependencies = abm.GetDirectDependencies(bundle), bundleSize = new FileInfo(BundlePath + bundle).Length }; data.Datas.Add(bundle, bd); var bdm = AssetBundle.LoadFromFile(BundlePath + bundle); var bdabns = bdm.GetAllAssetNames(); var bdabps = bdm.GetAllScenePaths(); bdm.Unload(true); foreach (var asset in bdabns) { if (!data.Names.ContainsKey(asset.ToLower())) { data.Names.Add(asset.ToLower(), new BundleName() { bundleName = bundle }); } if (asset.EndsWith(".spriteatlas", StringComparison.Ordinal)) { var deps = AssetDatabase.GetDependencies(asset, false); foreach (var dep in deps) { string spriteName = string.Empty; if (Helper.ConvertToAtlasSpriteName(dep, out spriteName)) { data.Names[dep.ToLower()] = new BundleName() { atlasSprite = true, bundleName = bundle, atlasName = asset, spriteName = spriteName }; } } } } foreach (var asset in bdabps) { data.Names.Add(asset.ToLower(), new BundleName() { bundleName = bundle }); } } var bytes = BundleDatas.Serialize(data); var nbytes = Crypto.ZLib.Zip(bytes); //bytes = Crypto.UnZip(nbytes); //var obj = ScriptableBundleData.Deserialize(bytes); File.WriteAllBytes(srcAMF + "_size", nbytes); } }