73 lines
3.7 KiB
C#
73 lines
3.7 KiB
C#
using System;
|
||
using UnityEditor;
|
||
using UnityEngine;
|
||
using YooAsset;
|
||
using YooAsset.Editor;
|
||
|
||
namespace Stary.Evo.Editor
|
||
{
|
||
[Serializable]
|
||
public class ScriptableBuildPipelineViewer:AbstractBuildPipelineViewer
|
||
{
|
||
public ScriptableBuildPipelineViewer(string packageName, string selectedBuildPipelines, string packageVersion) :
|
||
base(packageName, selectedBuildPipelines, packageVersion)
|
||
{
|
||
//isSimulate = false;
|
||
}
|
||
|
||
public override void ExecuteBuild()
|
||
{
|
||
var fileNameStyle = AssetBundleBuilderSetting.GetPackageFileNameStyle(packageName, selectedBuildPipelines);
|
||
var buildinFileCopyOption = AssetBundleBuilderSetting.GetPackageBuildinFileCopyOption(packageName, selectedBuildPipelines);
|
||
var buildinFileCopyParams = AssetBundleBuilderSetting.GetPackageBuildinFileCopyParams(packageName, selectedBuildPipelines);
|
||
var compressOption = AssetBundleBuilderSetting.GetPackageCompressOption(packageName, selectedBuildPipelines);
|
||
var clearBuildCache = AssetBundleBuilderSetting.GetPackageClearBuildCache(packageName, selectedBuildPipelines);
|
||
var useAssetDependencyDB = AssetBundleBuilderSetting.GetPackageUseAssetDependencyDB(packageName, selectedBuildPipelines);
|
||
var builtinShaderBundleName = GetBuiltinShaderBundleName();
|
||
|
||
ScriptableBuildParameters buildParameters = new ScriptableBuildParameters();
|
||
buildParameters.BuildOutputRoot = AssetBundleBuilderHelper.GetDefaultBuildOutputRoot();
|
||
buildParameters.BuildinFileRoot = AssetBundleBuilderHelper.GetStreamingAssetsRoot();
|
||
buildParameters.BuildPipeline = selectedBuildPipelines;
|
||
buildParameters.BuildBundleType = (int)EBuildBundleType.AssetBundle;
|
||
buildParameters.BuildTarget = EditorUserBuildSettings.activeBuildTarget;
|
||
buildParameters.PackageName = packageName;
|
||
buildParameters.PackageVersion = packageVersion;
|
||
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)
|
||
{
|
||
Debug.Log($"Build Success! 【{buildResult.OutputPackageDirectory}】");
|
||
// EditorUtility.RevealInFinder(buildResult.OutputPackageDirectory);
|
||
base.ExecuteBuild();
|
||
if (EditorUtility.DisplayDialog("提示",
|
||
$"打包完成[{buildResult.OutputPackageDirectory}],版本号为[{packageVersion}]!", "确定")) ;
|
||
|
||
}
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// 内置着色器资源包名称
|
||
/// 注意:和自动收集的着色器资源包名保持一致!
|
||
/// </summary>
|
||
private string GetBuiltinShaderBundleName()
|
||
{
|
||
var uniqueBundleName = AssetBundleCollectorSettingData.Setting.UniqueBundleName;
|
||
var packRuleResult = DefaultPackRule.CreateShadersPackRuleResult();
|
||
return packRuleResult.GetBundleName(packageName, uniqueBundleName);
|
||
}
|
||
}
|
||
} |