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<FileInfo>();
|
FileExtersion.GetAllDirectoryFileInfos(outputPath, fileInfos);
|
AssetsVersionMaker.WriteAssetsVersionFile(outputPath, fileInfos);
|
|
if (Directory.Exists(streamingPath))
|
Directory.Delete(streamingPath, true);
|
|
FileExtersion.DirectoryCopy(outputPath, streamingPath);
|
|
}
|
}
|
|
}
|