【m】优化加载架构
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -216,7 +216,8 @@ namespace Stary.Evo.Editor
|
||||
|
||||
private void OnBuildPipeline()
|
||||
{
|
||||
if (EditorUtility.DisplayDialog("提示", $"开始构建资源包[{selectedPackageNames}]!", "Yes", "No"))
|
||||
if (EditorUtility.DisplayDialog("提示",
|
||||
$"开始构建资源包[{selectedPackageNames}],版本号为[{BuildAssetDataSetting.packageVersion}]!", "Yes", "No"))
|
||||
{
|
||||
EditorTools.ClearUnityConsole();
|
||||
EditorApplication.delayCall += BuildAssetDataSetting.viewer.ExecuteBuild;
|
||||
@@ -229,7 +230,8 @@ namespace Stary.Evo.Editor
|
||||
|
||||
private async void OnUpdateBuildPipeline()
|
||||
{
|
||||
if (EditorUtility.DisplayDialog("提示", $"开始上传至服务器[{selectedPackageNames}]!", "Yes", "No"))
|
||||
if (EditorUtility.DisplayDialog("提示",
|
||||
$"开始上传至服务器[{selectedPackageNames}],,版本号为[{BuildAssetDataSetting.packageVersion}", "Yes", "No"))
|
||||
{
|
||||
// 新增:打包为zip的逻辑
|
||||
string zipFilePath = BuildZip(BuildAssetDataSetting);
|
||||
@@ -373,8 +375,14 @@ namespace Stary.Evo.Editor
|
||||
EditorUtility.DisplayDialog("提示",
|
||||
$"{resResultMessage.message + $"\n{resResultMessage.data.ToString()}"}", "确定");
|
||||
}
|
||||
|
||||
setting.GetBuildPackageVersion(true);
|
||||
else if (resResultMessage.code == 200)
|
||||
{
|
||||
EditorUtility.DisplayDialog("提示",
|
||||
$"上传成功,已更新为{setting.packageVersion}",
|
||||
"确定");
|
||||
setting.GetBuildPackageVersion(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
EditorUtility.DisplayProgressBar("提示", $"开始上传{setting.packageName}(更新数据库)", 1f);
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
using System;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using YooAsset;
|
||||
using YooAsset.Editor;
|
||||
|
||||
namespace Stary.Evo.Editor
|
||||
{
|
||||
[Serializable]
|
||||
public class BuiltinBuildPipelineViewer : AbstractBuildPipelineViewer
|
||||
{
|
||||
public BuiltinBuildPipelineViewer(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);
|
||||
|
||||
BuiltinBuildParameters buildParameters = new BuiltinBuildParameters();
|
||||
buildParameters.BuildOutputRoot = AssetBundleBuilderHelper.GetDefaultBuildOutputRoot();
|
||||
buildParameters.BuildinFileRoot = AssetBundleBuilderHelper.GetStreamingAssetsRoot();
|
||||
buildParameters.BuildPipeline = selectedBuildPipelines.ToString();
|
||||
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.EncryptionServices = CreateEncryptionInstance();
|
||||
|
||||
BuiltinBuildPipeline pipeline = new BuiltinBuildPipeline();
|
||||
var buildResult = pipeline.Run(buildParameters, true);
|
||||
if (buildResult.Success)
|
||||
{
|
||||
Debug.Log($"Build Success! 【{buildResult.OutputPackageDirectory}】");
|
||||
//EditorUtility.RevealInFinder(buildResult.OutputPackageDirectory);
|
||||
base.ExecuteBuild();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ac3d61d6f0744f02a2f038fdeed98b75
|
||||
timeCreated: 1741830306
|
||||
@@ -34,7 +34,7 @@ namespace Stary.Evo.Editor
|
||||
Menu.SetChecked(EditorNotUpdateMode, platform == HotUpdateMode.NotUpdate.ToString());
|
||||
Menu.SetChecked(EditorHotUpdateMode, platform == HotUpdateMode.HotUpdate.ToString());
|
||||
//Menu.SetChecked(WebPlayMode, platform == HotUpdateMode.WEB_PLAYMODE.ToString());
|
||||
Debug.LogError("ChangeHotUpdateSchema");
|
||||
Debug.LogError("ChangeHotUpdateSchema:"+platform);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -16,31 +16,25 @@ namespace Stary.Evo.Editor
|
||||
private static PLayerMode _pLayerMode;
|
||||
|
||||
private const string EditorSimulateMode = "Evo/Schema/ChangePlayer/EditorSimulateMode(编辑器调试模式)";
|
||||
private const string OfflinePlayMode = "Evo/Schema/ChangePlayer/OfflinePlayMode(本地运行模式)";
|
||||
private const string HostPlayMode = "Evo/Schema/ChangePlayer/HostPlayMode(服务器运行模式)";
|
||||
private const string HostPlayMode = "Evo/Schema/ChangePlayer/HostPlayMode(联机运行模式)";
|
||||
private const string WebPlayMode = "Evo/Schema/ChangePlayer/WebPlayMode(Web运行模式)";
|
||||
|
||||
[MenuItem(EditorSimulateMode)]
|
||||
[MenuItem(EditorSimulateMode, false,3)]
|
||||
private static void SetEditorMode() => SetPlayerMode(PLayerMode.EDITOR_SIMULATEMODE);
|
||||
|
||||
[MenuItem(OfflinePlayMode)]
|
||||
private static void SetOfflineMode() => SetPlayerMode(PLayerMode.OFFLINE_PLAYMODE);
|
||||
|
||||
[MenuItem(HostPlayMode)]
|
||||
[MenuItem(HostPlayMode, false,3)]
|
||||
private static void SetHostMode() => SetPlayerMode(PLayerMode.HOST_PLAYMODE);
|
||||
|
||||
// [MenuItem(WebPlayMode)]
|
||||
// private static void SetWebMode() => SetPlayerMode(PLayerMode.WEB_PLAYMODE);
|
||||
|
||||
[MenuItem(EditorSimulateMode, true)]
|
||||
[MenuItem(EditorSimulateMode, true,3)]
|
||||
private static bool ValidateModeMenu()
|
||||
{
|
||||
string platform = EditorPrefs.GetString("ChangePlayerSchema");
|
||||
Menu.SetChecked(EditorSimulateMode, platform == PLayerMode.EDITOR_SIMULATEMODE.ToString());
|
||||
Menu.SetChecked(OfflinePlayMode, platform == PLayerMode.OFFLINE_PLAYMODE.ToString());
|
||||
Menu.SetChecked(HostPlayMode, platform == PLayerMode.HOST_PLAYMODE.ToString());
|
||||
//Menu.SetChecked(WebPlayMode, platform == PLayerMode.WEB_PLAYMODE.ToString());
|
||||
Debug.LogError("CheckPlatform");
|
||||
Debug.LogError($"ChangePlayerSchema:{platform}");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -77,10 +71,7 @@ namespace Stary.Evo.Editor
|
||||
{
|
||||
//编辑仿真模式,
|
||||
EDITOR_SIMULATEMODE,
|
||||
|
||||
//单机运行模式
|
||||
OFFLINE_PLAYMODE,
|
||||
|
||||
|
||||
//联机运行模式
|
||||
HOST_PLAYMODE,
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f9224eefce894279bc45f0e44c5eeb94
|
||||
timeCreated: 1767593352
|
||||
Reference in New Issue
Block a user