diff --git a/Assets/TEngine/Editor/Resource/EditorResourceBuilder.cs b/Assets/TEngine/Editor/Resource/EditorResourceBuilder.cs new file mode 100644 index 00000000..64272bf3 --- /dev/null +++ b/Assets/TEngine/Editor/Resource/EditorResourceBuilder.cs @@ -0,0 +1,59 @@ +using UnityEditor; +using UnityEngine; +using YooAsset.Editor; + +public static class EditorResourceBuilder +{ + + public static void Build() + { + BuildInternal(BuildTarget.Android,buildPipeline:EBuildPipeline.BuiltinBuildPipeline); + } + + public static void BuildInternal( + BuildTarget buildTarget, + string packageVersion = "1.0", + EBuildPipeline buildPipeline = EBuildPipeline.ScriptableBuildPipeline, + EBuildMode buildMode = EBuildMode.IncrementalBuild) + { + Debug.Log($"开始构建 : {buildTarget}"); + + // 构建参数 + string defaultOutputRoot = AssetBundleBuilderHelper.GetDefaultOutputRoot(); + BuildParameters buildParameters = new BuildParameters(); + buildParameters.OutputRoot = defaultOutputRoot; + buildParameters.BuildTarget = buildTarget; + buildParameters.BuildPipeline = buildPipeline; + buildParameters.BuildMode = buildMode; + buildParameters.PackageName = "DefaultPackage"; + buildParameters.PackageVersion = packageVersion; + buildParameters.VerifyBuildingResult = true; + buildParameters.CompressOption = ECompressOption.LZ4; + buildParameters.OutputNameStyle = EOutputNameStyle.HashName; + buildParameters.CopyBuildinFileOption = ECopyBuildinFileOption.None; + + // 执行构建 + AssetBundleBuilder builder = new AssetBundleBuilder(); + var buildResult = builder.Run(buildParameters); + if (buildResult.Success) + { + Debug.Log($"构建成功 : {buildResult.OutputPackageDirectory}"); + } + else + { + Debug.LogError($"构建失败 : {buildResult.FailedInfo}"); + } + } + + // 从构建命令里获取参数示例 + private static string GetBuildPackageName() + { + foreach (string arg in System.Environment.GetCommandLineArgs()) + { + if (arg.StartsWith("buildPackage")) + return arg.Split("="[0])[1]; + } + + return string.Empty; + } +} \ No newline at end of file diff --git a/Assets/TEngine/Editor/Resource/EditorResourceBuilder.cs.meta b/Assets/TEngine/Editor/Resource/EditorResourceBuilder.cs.meta new file mode 100644 index 00000000..6d6921cc --- /dev/null +++ b/Assets/TEngine/Editor/Resource/EditorResourceBuilder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bb878012ff31c6743b2218a15b7fc654 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: