| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #if UNITY_2019_4_OR_NEWER
- using System;
- using System.IO;
- using System.Linq;
- using System.Collections.Generic;
- using UnityEditor;
- using UnityEngine;
- using UnityEditor.UIElements;
- using UnityEngine.UIElements;
- namespace YooAsset.Editor
- {
- internal class ScriptableBuildPipelineViewer : BuildPipelineViewerBase
- {
- public ScriptableBuildPipelineViewer(string packageName, BuildTarget buildTarget, VisualElement parent)
- : base(packageName, EBuildPipeline.ScriptableBuildPipeline, buildTarget, parent)
- {
- }
- /// <summary>
- /// 执行构建
- /// </summary>
- protected override void ExecuteBuild()
- {
- var fileNameStyle = AssetBundleBuilderSetting.GetPackageFileNameStyle(PackageName, BuildPipeline);
- var buildinFileCopyOption = AssetBundleBuilderSetting.GetPackageBuildinFileCopyOption(PackageName, BuildPipeline);
- var buildinFileCopyParams = AssetBundleBuilderSetting.GetPackageBuildinFileCopyParams(PackageName, BuildPipeline);
- var compressOption = AssetBundleBuilderSetting.GetPackageCompressOption(PackageName, BuildPipeline);
- var clearBuildCache = AssetBundleBuilderSetting.GetPackageClearBuildCache(PackageName, BuildPipeline);
- var useAssetDependencyDB = AssetBundleBuilderSetting.GetPackageUseAssetDependencyDB(PackageName, BuildPipeline);
- var builtinShaderBundleName = GetBuiltinShaderBundleName();
- ScriptableBuildParameters buildParameters = new ScriptableBuildParameters();
- buildParameters.BuildOutputRoot = AssetBundleBuilderHelper.GetDefaultBuildOutputRoot();
- buildParameters.BuildinFileRoot = AssetBundleBuilderHelper.GetStreamingAssetsRoot();
- buildParameters.BuildPipeline = BuildPipeline.ToString();
- buildParameters.BuildBundleType = (int)EBuildBundleType.AssetBundle;
- buildParameters.BuildTarget = BuildTarget;
- buildParameters.PackageName = PackageName;
- buildParameters.PackageVersion = GetPackageVersion();
- buildParameters.EnableSharePackRule = true;
- buildParameters.VerifyBuildingResult = true;
- buildParameters.FileNameStyle = fileNameStyle;
- buildParameters.BuildinFileCopyOption = buildinFileCopyOption;
- buildParameters.BuildinFileCopyParams = buildinFileCopyParams;
- buildParameters.CompressOption = compressOption;
- buildParameters.ClearBuildCacheFiles = clearBuildCache;
- buildParameters.UseAssetDependencyDB = useAssetDependencyDB;
- buildParameters.BuiltinShadersBundleName = builtinShaderBundleName;
- buildParameters.EncryptionServices = CreateEncryptionInstance();
- ScriptableBuildPipeline pipeline = new ScriptableBuildPipeline();
- var buildResult = pipeline.Run(buildParameters, true);
- if (buildResult.Success)
- EditorUtility.RevealInFinder(buildResult.OutputPackageDirectory);
- }
- /// <summary>
- /// 内置着色器资源包名称
- /// 注意:和自动收集的着色器资源包名保持一致!
- /// </summary>
- private string GetBuiltinShaderBundleName()
- {
- var uniqueBundleName = AssetBundleCollectorSettingData.Setting.UniqueBundleName;
- var packRuleResult = DefaultPackRule.CreateShadersPackRuleResult();
- return packRuleResult.GetBundleName(PackageName, uniqueBundleName);
- }
- }
- }
- #endif
|