【m】框架大更新
This commit is contained in:
@@ -0,0 +1,177 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Sirenix.OdinInspector;
|
||||
using Stary.Evo.Editor;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using YooAsset;
|
||||
using YooAsset.Editor;
|
||||
|
||||
namespace Stary.Evo.Editor
|
||||
{
|
||||
[Serializable]
|
||||
public class AbstractBuildPipelineViewer
|
||||
{
|
||||
//protected BuildAssetDataSetting dataSetting;
|
||||
|
||||
#region 打包相关参数
|
||||
|
||||
public string packageName;
|
||||
protected string selectedBuildPipelines;
|
||||
public string packageVersion;
|
||||
|
||||
#endregion
|
||||
// protected bool isSimulate;
|
||||
// protected bool isRaw;
|
||||
|
||||
[Title("清理构建缓存", titleAlignment: TitleAlignments.Centered)]
|
||||
[HorizontalGroup("BuildCache")]
|
||||
[InfoBox("当不勾选此项的时候,引擎会开启增量打包模式,会极大提高构建速度!")]
|
||||
[OnValueChanged("SetBuildCacheToggle")]
|
||||
[HideIf("@ selectedBuildPipelines==EBuildPipeline.EditorSimulateBuildPipeline.ToString()")]
|
||||
public bool clearBuildCacheToggle;
|
||||
|
||||
[Title("依赖数据库", titleAlignment: TitleAlignments.Centered)]
|
||||
[HorizontalGroup("BuildCache")]
|
||||
[InfoBox("当开启此项的时候,会极大提高构建速度!")]
|
||||
[OnValueChanged("SetUseAssetDependencyDB")]
|
||||
[HideIf("@ selectedBuildPipelines==EBuildPipeline.EditorSimulateBuildPipeline.ToString()")]
|
||||
public bool useAssetDependencyDBToggle=true;
|
||||
|
||||
|
||||
|
||||
[Title("资源包的压缩方式", titleAlignment: TitleAlignments.Centered)]
|
||||
[HorizontalGroup("BuildCache"), HideLabel]
|
||||
[InfoBox("推荐LZ4压缩方式")]
|
||||
[OnValueChanged("SetCompression")]
|
||||
[HideIf("@ selectedBuildPipelines==EBuildPipeline.EditorSimulateBuildPipeline.ToString()")]
|
||||
public ECompressOption compression = ECompressOption.LZ4;
|
||||
|
||||
// [Title("资源包文件名称样式", titleAlignment: TitleAlignments.Centered)]
|
||||
// [HorizontalGroup("FileStyle"), HideLabel]
|
||||
// [OnValueChanged("SetFileNameStyle")]
|
||||
// [HideIf("@ dataSetting.selectedBuildPipelines==EBuildPipeline.EditorSimulateBuildPipeline")]
|
||||
private EFileNameStyle fileNameStyle = EFileNameStyle.BundleName;
|
||||
|
||||
[Title("首包资源文件的拷贝方式", titleAlignment: TitleAlignments.Centered)]
|
||||
[VerticalGroup("BuildCache/FileStyle"), HideLabel]
|
||||
[InfoBox("资源拷贝方式,是否拷贝StreamingAssets")]
|
||||
[OnValueChanged("SetCopyBuildinFileOption")]
|
||||
[HideIf("@ selectedBuildPipelines==EBuildPipeline.EditorSimulateBuildPipeline.ToString()")]
|
||||
public EBuildinFileCopyOption copyBuildinFileOption = EBuildinFileCopyOption.ClearAndCopyAll;
|
||||
|
||||
[VerticalGroup("BuildCache/FileStyle"), HideLabel]
|
||||
[OnValueChanged("SetCopyBuildinFileParams")]
|
||||
[ShowIf(
|
||||
"@copyBuildinFileOption==EBuildinFileCopyOption.ClearAndCopyByTags||copyBuildinFileOption==EBuildinFileCopyOption.OnlyCopyByTags ")]
|
||||
public string copyBuildinFileParams;
|
||||
|
||||
public AbstractBuildPipelineViewer(string packageName,string selectedBuildPipelines,string packageVersion)
|
||||
{
|
||||
//this.dataSetting = dataSetting;
|
||||
SetBuildPackageData(packageName,selectedBuildPipelines,packageVersion);
|
||||
|
||||
useAssetDependencyDBToggle = true;
|
||||
SetUseAssetDependencyDB();
|
||||
clearBuildCacheToggle = false;
|
||||
SetBuildCacheToggle();
|
||||
compression = ECompressOption.LZ4;
|
||||
SetCompression();
|
||||
fileNameStyle = EFileNameStyle.BundleName;
|
||||
SetFileNameStyle();
|
||||
copyBuildinFileOption = EBuildinFileCopyOption.ClearAndCopyAll;
|
||||
SetCopyBuildinFileOption();
|
||||
}
|
||||
|
||||
public void SetBuildPackageData(string packageName,string selectedBuildPipelines,string packageVersion)
|
||||
{
|
||||
this.packageName = packageName;
|
||||
this.selectedBuildPipelines = selectedBuildPipelines;
|
||||
this.packageVersion = packageVersion;
|
||||
}
|
||||
public void SetBuildPackagePackageName(string packageName)
|
||||
{
|
||||
this.packageName = packageName;
|
||||
}
|
||||
public void SetBuildPackagePackageVersion(string packageVersion)
|
||||
{
|
||||
this.packageVersion = packageVersion;
|
||||
}
|
||||
#region AssetBuild
|
||||
|
||||
private void SetCompression()
|
||||
{
|
||||
AssetBundleBuilderSetting.SetPackageCompressOption(packageName, selectedBuildPipelines,
|
||||
compression);
|
||||
}
|
||||
|
||||
private void SetFileNameStyle()
|
||||
{
|
||||
|
||||
AssetBundleBuilderSetting.SetPackageFileNameStyle(packageName, selectedBuildPipelines,
|
||||
fileNameStyle);
|
||||
}
|
||||
|
||||
private void SetCopyBuildinFileOption()
|
||||
{
|
||||
|
||||
AssetBundleBuilderSetting.SetPackageBuildinFileCopyOption(packageName,
|
||||
selectedBuildPipelines, copyBuildinFileOption);
|
||||
|
||||
//PlayerPrefs.SetInt("CopyBuildinFileOption", (int)copyBuildinFileOption);
|
||||
}
|
||||
|
||||
private void SetCopyBuildinFileParams()
|
||||
{
|
||||
|
||||
AssetBundleBuilderSetting.SetPackageBuildinFileCopyParams(packageName,
|
||||
selectedBuildPipelines, copyBuildinFileParams);
|
||||
//PlayerPrefs.SetInt("CopyBuildinFileOption", (int)copyBuildinFileOption);
|
||||
}
|
||||
|
||||
public void SetBuildCacheToggle()
|
||||
{
|
||||
AssetBundleBuilderSetting.SetPackageClearBuildCache(packageName, selectedBuildPipelines,
|
||||
clearBuildCacheToggle);
|
||||
}
|
||||
|
||||
public void SetUseAssetDependencyDB()
|
||||
{
|
||||
|
||||
AssetBundleBuilderSetting.SetPackageUseAssetDependencyDB(packageName, selectedBuildPipelines,
|
||||
useAssetDependencyDBToggle);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
public virtual void ExecuteBuild()
|
||||
{
|
||||
// GetPackageVersion();
|
||||
// if (dataSetting.packageName == "Main")
|
||||
// {
|
||||
// dataSetting.GetBuildPackageVersion(true);
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 创建加密类实例
|
||||
/// </summary>
|
||||
protected IEncryptionServices CreateEncryptionInstance()
|
||||
{
|
||||
var encyptionClassName =
|
||||
AssetBundleBuilderSetting.GetPackageEncyptionServicesClassName(packageName,
|
||||
selectedBuildPipelines);
|
||||
var encryptionClassTypes = EditorTools.GetAssignableTypes(typeof(IEncryptionServices));
|
||||
var classType = encryptionClassTypes.Find(x => x.FullName.Equals(encyptionClassName));
|
||||
if (classType != null)
|
||||
return (IEncryptionServices)Activator.CreateInstance(classType);
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user