using UnityEngine; using UnityEditor; using System.IO; using System.Collections.Generic; namespace Assets.Editor.Tool { public class AssetBundleBuildTool { [MenuItem("Tools/AB增量打包(不设置Label)")] static void DoIt() { BuildAssetBundleOptions opt = BuildAssetBundleOptions.ChunkBasedCompression | BuildAssetBundleOptions.DeterministicAssetBundle | BuildAssetBundleOptions.StrictMode; string outputPath = StringUtility.Contact(System.Environment.CurrentDirectory, "/AssetBundles/", EditorUserBuildSettings.activeBuildTarget.ToString()); string streamingPath = StringUtility.Contact(Application.streamingAssetsPath, Path.AltDirectorySeparatorChar, EditorUserBuildSettings.activeBuildTarget.ToString()); if (!Directory.Exists(outputPath)) Directory.CreateDirectory(outputPath); AssetBundleBuildExtersion.Build(outputPath, "builtin", opt, EditorUserBuildSettings.activeBuildTarget, false); AssetBundleBuildExtersion.Build(outputPath, "audio", opt, EditorUserBuildSettings.activeBuildTarget, false); AssetBundleBuildExtersion.Build(outputPath, "mobeffectshader", opt, EditorUserBuildSettings.activeBuildTarget, false); AssetBundleBuildExtersion.Build(outputPath, "config", opt, EditorUserBuildSettings.activeBuildTarget, false); TableTool.CopyConfigsToOutPutPath(StringUtility.Contact(outputPath, "/config")); LuaBuildHelper.OnPreBuild(); UpdateLuaSetting.SetAllLuaAssetBundleName(); AssetBundleBuildExtersion.Build(outputPath, "lua", opt, EditorUserBuildSettings.activeBuildTarget, false); LuaBuildHelper.OnPostBuild(); AssetBundleBuildExtersion.Build(outputPath, "maps", opt, EditorUserBuildSettings.activeBuildTarget, false); AssetBundleBuildExtersion.Build(outputPath, "ui", opt, EditorUserBuildSettings.activeBuildTarget, false); var fileInfos = new List(); FileExtersion.GetAllDirectoryFileInfos(outputPath, fileInfos); AssetsVersionMaker.WriteAssetsVersionFile(outputPath, fileInfos); if (Directory.Exists(streamingPath)) Directory.Delete(streamingPath, true); FileExtersion.DirectoryCopy(outputPath, streamingPath); } } }