【m】优化加载架构

This commit is contained in:
zhangzheng
2026-01-05 17:58:53 +08:00
parent 033edf402f
commit af80facb43
28 changed files with 333 additions and 248 deletions

View File

@@ -9,20 +9,22 @@ using YooAsset.Editor;
namespace Stary.Evo.Editor
{
[CreateAssetMenu(fileName = "BuildAssetDataSetting", menuName = "Evo/BuildAssetDataSetting")]
public class BuildAssetDataSetting : SerializedScriptableObject
public class BuildAssetDataSetting : SerializedScriptableObject
{
public void OnEnable()
{
BuildPipelineViewer();
viewer = new ScriptableBuildPipelineViewer(packageName, selectedBuildPipelines.ToString(),
packageVersion);
oldVersionX = packageVersionX;
oldVersionY = packageVersionY;
oldVersionZ = packageVersionZ;
}
[HideInInspector] public string packageName;
[HideInInspector]public int packageVersionX = 1;
[HideInInspector]public int packageVersionY;
[HideInInspector]public int packageVersionZ;
[HideInInspector] public int packageVersionX = 1;
[HideInInspector] public int packageVersionY;
[HideInInspector] public int packageVersionZ;
private int oldVersionX = 1;
private int oldVersionY;
private int oldVersionZ;
@@ -32,10 +34,10 @@ namespace Stary.Evo.Editor
[OnValueChanged("SetEnvironmentType")]
public EnvironmentType environmentType;
[Title("构建列表", titleAlignment: TitleAlignments.Centered)]
[HorizontalGroup("BuildSetting"), HideLabel]
[OnValueChanged("SetBuildPipelines")]
public EBuildPipeline selectedBuildPipelines;
// [Title("构建列表", titleAlignment: TitleAlignments.Centered)]
// [HorizontalGroup("BuildSetting"), HideLabel]
// [OnValueChanged("SetBuildPipelines")]
private BuildPipelineType selectedBuildPipelines = BuildPipelineType.ScriptableBuildPipeline;
private const string VerSersionMessage = "(小版本由打包叠加,中版本、大版本更新会重置小版本,如误操作,点击重置按钮即可)";
@@ -66,7 +68,8 @@ namespace Stary.Evo.Editor
packageVersionY++;
if (packageVersionZ > 0)
packageVersionZ = 0;
}else if (VersionType == VersionPosType.Z)
}
else if (VersionType == VersionPosType.Z)
{
packageVersionZ++;
}
@@ -90,16 +93,18 @@ namespace Stary.Evo.Editor
packageVersionY--;
if (packageVersionZ > 0)
packageVersionZ = 0;
}else if (VersionType == VersionPosType.Z)
}
else if (VersionType == VersionPosType.Z)
{
packageVersionZ--;
if (packageVersionZ < 0)
packageVersionZ = 0;
}
GetPackageVersion();
}
[Title("重置版本", titleAlignment: TitleAlignments.Centered)]
[HorizontalGroup("BuildSetting/PackageVersion"), HideLabel, Button(Icon = SdfIconType.ArrowRepeat)]
[HideIf("environmentType", EnvironmentType.Debug)]
@@ -111,11 +116,9 @@ namespace Stary.Evo.Editor
GetPackageVersion();
}
[HideLabel] public AbstractBuildPipelineViewer viewer;
[HideLabel] public AbstractBuildPipelineViewer viewer;
[HideLabel] private Dictionary<EBuildPipeline, AbstractBuildPipelineViewer> _viewers;
//[HideLabel] private Dictionary<BuildPipelineType, AbstractBuildPipelineViewer> _viewers;
public void SetEnvironmentType()
{
@@ -129,21 +132,21 @@ namespace Stary.Evo.Editor
{
EditorUtility.SetDirty(this);
AssetDatabase.SaveAssets();
version= "Simulate";
version = "Simulate";
}
if (environmentType == EnvironmentType.Release)
{
version =
version =
$"{packageVersionX}.{packageVersionY}.{packageVersionZ}";
if (isUpdate)
packageVersionZ++;
packageVersion = $"{packageVersionX}.{packageVersionY}.{packageVersionZ}";
}
BuildPipelineViewer();
//BuildPipelineViewer();
EditorUtility.SetDirty(this);
AssetDatabase.SaveAssets();
return version;
@@ -151,18 +154,16 @@ namespace Stary.Evo.Editor
public void GetPackageVersion()
{
SetBuildPipelines();
if (environmentType == EnvironmentType.Debug)
{
viewer.clearBuildCacheToggle = true;
selectedBuildPipelines = EBuildPipeline.EditorSimulateBuildPipeline;
//selectedBuildPipelines = BuildPipelineType.EditorSimulateBuildPipeline;
packageVersion = "Simulate";
}
else if (environmentType == EnvironmentType.Release)
{
viewer.clearBuildCacheToggle = false;
selectedBuildPipelines = EBuildPipeline.ScriptableBuildPipeline;
//selectedBuildPipelines = BuildPipelineType.ScriptableBuildPipeline;
packageVersionX = packageVersionX > 1 ? packageVersionX : 1;
packageVersionY =
@@ -183,44 +184,62 @@ namespace Stary.Evo.Editor
/// 设置当前构建管线
/// </summary>
/// <returns></returns>
private void SetBuildPipelines()
public void SetBuildPipelines()
{
BuildPipelineViewer();
if (packageName.IsNullOrEmpty())
{
packageName = BuildAssetWindow.GetBuildPackageName();
}
// BuildPipelineViewer();
if (viewer != null)
viewer.SetBuildPackageData(packageName, selectedBuildPipelines.ToString(), packageVersion);
else
{
Debug.LogError($"UnityEvo:BuildPipelineViewer 为空!");
}
}
/// <summary>
/// 生成打包实例
/// 获取当前构建管线名称
/// </summary>
public void BuildPipelineViewer()
/// <returns></returns>
public BuildPipelineType GetBuildPipelinesName()
{
if (_viewers == null)
_viewers = new Dictionary<EBuildPipeline, AbstractBuildPipelineViewer>();
if (_viewers.ContainsKey(selectedBuildPipelines))
{
viewer = _viewers[selectedBuildPipelines];
viewer.SetBuildPackageData(packageName, selectedBuildPipelines.ToString(), packageVersion);
}
else
{
switch (selectedBuildPipelines)
{
case EBuildPipeline.EditorSimulateBuildPipeline:
viewer = new SimulateBuildPipelineViewer(packageName, selectedBuildPipelines.ToString(), packageVersion);
break;
case EBuildPipeline.BuiltinBuildPipeline:
viewer = new BuiltinBuildPipelineViewer(packageName, selectedBuildPipelines.ToString(), packageVersion);
break;
case EBuildPipeline.ScriptableBuildPipeline:
viewer = new ScriptableBuildPipelineViewer(packageName, selectedBuildPipelines.ToString(), packageVersion);
break;
case EBuildPipeline.RawFileBuildPipeline:
viewer = new RawfileBuildpipelineViewer(packageName, selectedBuildPipelines.ToString(), packageVersion);
break;
}
_viewers.Add(selectedBuildPipelines, viewer);
}
return selectedBuildPipelines;
}
// /// <summary>
// /// 生成打包实例
// /// </summary>
// public void BuildPipelineViewer()
// {
// if (_viewers == null)
// _viewers = new Dictionary<BuildPipelineType, AbstractBuildPipelineViewer>();
// if (_viewers.ContainsKey(selectedBuildPipelines))
// {
// viewer = _viewers[selectedBuildPipelines];
// viewer.SetBuildPackageData(packageName, selectedBuildPipelines.ToString(), packageVersion);
// }
// else
// {
// switch (selectedBuildPipelines)
// {
// case BuildPipelineType.EditorSimulateBuildPipeline:
// viewer = new SimulateBuildPipelineViewer(packageName, selectedBuildPipelines.ToString(), packageVersion);
// break;
// case BuildPipelineType.ScriptableBuildPipeline:
// viewer = new ScriptableBuildPipelineViewer(packageName, selectedBuildPipelines.ToString(), packageVersion);
// break;
// case BuildPipelineType.RawFileBuildPipeline:
// viewer = new RawfileBuildpipelineViewer(packageName, selectedBuildPipelines.ToString(), packageVersion);
// break;
// }
//
// _viewers.Add(selectedBuildPipelines, viewer);
// }
// }
}
public enum VersionPosType