/// <summary> /// 生成文件 /// </summary> /// <param name="abManif"></param> private static void GenFile(AssetBundleManifest abManif) { string filePath = ABSettings.AssetBundleCompareFilePath(); FileStream fs = new FileStream(filePath, FileMode.Create); StreamWriter mStreamWriter = new StreamWriter(fs, System.Text.Encoding.UTF8); ABHashCollection abHashCollection = new ABHashCollection(); ABHashInfo abHashInfo = null; string[] abs = abManif.GetAllAssetBundles(); for (int i = 0; i < abs.Length; i++) { abHashInfo = new ABHashInfo(); abHashInfo.ab = abs[i]; abHashInfo.hash = abManif.GetAssetBundleHash(abs[i]).ToString(); abHashCollection.abHashList.Add(abHashInfo); } string jsonStr = JsonUtility.ToJson(abHashCollection); ABUtil.Log("Gen Json Success: " + jsonStr); mStreamWriter.Write(jsonStr); mStreamWriter.Close(); fs.Close(); }
private void BuildAB() { GUILayout.Label("Build Asset Bundle"); GUILayout.Label("ABPath: " + ABSettings.AssetBundleBuildPath()); GUILayout.Label("ABVersion: " + mVersion); GUILayout.Label("ABPlatform: " + mBuildPlatform); SetBtn("Builde", ABToolSet.BuildAllAssetBundles); }
/// <summary> /// 删除AssetBundle /// </summary> public static void RemoveAssetBundle() { try { Directory.Delete(ABSettings.AssetBundleFetchPath(), true); Directory.CreateDirectory(ABSettings.AssetBundleFetchPath()); } catch (Exception e) { ABUtil.Log(e.Message); } ABUtil.Log("remove asset bundle success"); }
protected internal ABSettings InitialSetup(ABSettings createdObj) { if (createdObj == null) { throw new System.NullReferenceException("Settings is null"); } createdObj.Version = "1"; createdObj.BuildPath = $"{Application.dataPath}/{ABNames.Data}/Builds"; createdObj.LocalLoadPath = $"{Application.persistentDataPath}/{ABNames.Data}"; createdObj.RemoteLoadPath = $"http://localhost/{ABNames.Data}"; return(createdObj); }
/// <summary> /// 删除对比文件 /// </summary> public static void RemoveLocalCompareFile() { string filePath = ABSettings.LocalCompareFilePath(); try { File.Delete(filePath); ABUtil.Log("Delete AB Compare File Success"); } catch (Exception e) { ABUtil.Log(e.Message); } }
/// <summary> /// 生成Json对比文件 /// </summary> public static void GenABCompareFile() { string assetBundlePath = ABSettings.FolderAssetBundleFetchPath(); AssetBundle assetBundle = AssetBundle.LoadFromFile(assetBundlePath); if (assetBundle == null) { ABUtil.Log("Failed to load AssetBundle!"); return; } AssetBundleManifest abManif = assetBundle.LoadAsset("AssetBundleManifest") as AssetBundleManifest; GenFile(abManif); assetBundle.Unload(false); }
internal ABSettings Create() { if (Settings != null) { return(Settings); } else { ABSettings settings = ScriptableObject.CreateInstance <ABSettings>(); if (!Directory.Exists(ABPaths.SettingsDirectoryPath)) { AssetDatabase.CreateFolder(ABPaths.MainDirecctoryPath, ABNames.Settings); } AssetDatabase.CreateAsset(settings, ABPaths.SettingsFilePath); return(InitialSetup(settings)); } }
/// <summary> /// 读取本地Local文件的比较文件 /// </summary> public static void ReadABCompareFile() { ABHashCollection abHashCollection = new ABHashCollection(); string filePath = ABSettings.LocalCompareFilePath(); try { FileStream fs = new FileStream(filePath, FileMode.Open); StreamReader streamReader = new StreamReader(fs); string jsonStr = streamReader.ReadToEnd(); ABUtil.Log("read jsonStr: " + jsonStr); streamReader.Close(); fs.Close(); } catch (Exception e) { ABUtil.Log(e.Message); } }
/// <summary> /// 打包 /// </summary> public static void BuildAllAssetBundles() { BuildPipeline.BuildAssetBundles(ABSettings.AssetBundleBuildPath(), BuildAssetBundleOptions.None, ABSettings.GetBuildTarget()); GenABCompareFile(); ClearABCache(); }