123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- using XGame.Editor.Build.AssetBundles;
- using XGame.Editor.Asset;
- using UnityEditor;
- using UnityEngine;
- namespace XGame.Editor.Build
- {
- public static class XBuildPipeline
- {
- [MenuItem("Build/一键打包", priority = 1)]
- private static void BuildApp()
- {
- ////收集资源信息
- XBuildPipeline.GenerateAddressable();
- ////创建图集配置
- //CreateAtlas();
- ////资源打包成AB包
- //BuildBundles();
- ////拷贝资源
- //CopyStreamAssets();
- //打包App
- BuildAppWindow.CreateWindow();
- }
- public static void GenerateAddressable()
- {
- var buildTask = new AddressableBuildTask();
- buildTask.Run();
- //CollectCustomAddressableNames();
- BuildLog.Log($"GenerateAddressable finish. Time: {System.DateTime.Now}");
- }
- [MenuItem("Build/CreateAtlas", priority = 21)]
- public static void GenerateAtlas()
- {
- var task = new AtlasBuildTask();
- task.Run();
- }
- [MenuItem("Build/BuildAssetBundles", priority = 22)]
- public static bool BuildAssetBundles()
- {
- var builder = new BundleContextBuilder();
- if (!builder.Build())
- {
- return false;
- }
- var context = builder.Product;
- var controller = BundleManifestsController.Creat(context);
- var pipeline = new SbpBuildPipeline();
- var buildTask = new AssetBundleBuildTask(context, controller, pipeline);
- return buildTask.Run();
- }
- //[MenuItem("Build/SerializeConfigs", priority = 23)]
- private static void SerializeConfigs()
- {
- SerializableUtils.SerializeAllConfigs();
- }
- [MenuItem("Build/ExportAssets", priority = 24)]
- private static void ExportAssets()
- {
- var context = new BuildContext()
- {
- config = new BuildConfig()
- {
- editor = new BuildConfig.EditorSettings()
- {
- isNative = true
- },
- project = new BuildConfig.ProjectSettings()
- {
- outputPath = PathDefine.DefaultOutputPath
- }
- }
- };
- IBuildCommand cmd = new CmdExportAssets();
- if (cmd is IBuildContextAdapter adapter)
- {
- adapter.Context = context;
- }
- cmd.Start();
- }
- [MenuItem("Build/BuildPlayer", priority = 25)]
- private static void BuildPlayer()
- {
- LocalizedBuild.BuildPlayer();
- }
- [MenuItem("Build/CreatePackerManifest", priority = 46)]
- private static void CreatePackerManifest()
- {
- ABPackerInfoManifest.LoadOrCreate();
- }
- [MenuItem("Build/GenAssetbundleManifests", priority = 47)]
- public static bool GenerateBundleManifests()
- {
- var builder = new BundleContextBuilder();
- if (!builder.Build())
- {
- return false;
- }
- var controller = BundleManifestsController.Creat(builder.Product);
- return controller.GenerateManifests();
- }
- [MenuItem("Build/BuildManifestBundle", priority = 48)]
- public static bool BuildManifestBundle()
- {
- // sbp打包速度很快,一般不用单独打manifest的包
- var pipeline = new NormalBuildPipeline();
- var task = new ManifestBundleBuildTask(pipeline);
- return task.Run();
- }
- [MenuItem("Build/反序列化Manifest", priority = 101)]
- private static void DeserializeABManifest()
- {
- DeserializeABManifestWindow.CreateWindow();
- }
- [MenuItem("Build/重新编译代码", priority = 102)]
- private static void RequestScriptCompilation()
- {
- UnityEditor.Compilation.CompilationPipeline.RequestScriptCompilation();
- }
- [MenuItem("Build/Assetbundle分组/常规")]
- public static bool GenAssetbundleGroupsNormal()
- {
- var outputPath = $"{PathDefine.ExtAssetsPath}/AbGroupsNormal.json";
- var task = new AssetBundleGroupsTask(outputPath, AssetBundleGroupsTask.AbGroupMode.Normal);
- return task.Excute();
- }
- [MenuItem("Build/Assetbundle分组/依赖顺序")]
- public static bool GenAssetbundlesByDependencies()
- {
- var outputPath = $"{PathDefine.ExtAssetsPath}/AbGroupsByDependencies.json";
- var task = new AssetBundleGroupsTask(outputPath, AssetBundleGroupsTask.AbGroupMode.Dependencies);
- return task.Excute();
- }
- }
- }
|