【m】修改核心框架

This commit is contained in:
zhangzheng
2026-01-08 12:25:29 +08:00
parent 05b1bc90ff
commit 02af92b86d
8 changed files with 305 additions and 270 deletions

View File

@@ -61,7 +61,7 @@ namespace Stary.Evo.Editor
protected override async void Initialize()
{
base.Initialize();
GetBuildPackageNames();
}
@@ -70,7 +70,7 @@ namespace Stary.Evo.Editor
if (window != null)
window.Close();
}
protected void OnSelectionChange()
{
EditorUtility.SetDirty(BuildAssetDataSetting);
@@ -122,9 +122,7 @@ namespace Stary.Evo.Editor
#region BuildAsset
[BoxGroup("Build", showLabel: false)]
[InlineEditor(InlineEditorObjectFieldModes.CompletelyHidden)]
[HideLabel]
[BoxGroup("Build", showLabel: false)] [InlineEditor(InlineEditorObjectFieldModes.CompletelyHidden)] [HideLabel]
public BuildAssetDataSetting BuildAssetDataSetting;
/// <summary>
@@ -202,9 +200,7 @@ namespace Stary.Evo.Editor
#region Update
[BoxGroup("Build", showLabel: false)]
[Title("打包本地资源", titleAlignment: TitleAlignments.Centered)]
[HideLabel]
[BoxGroup("Build", showLabel: false)] [Title("打包本地资源", titleAlignment: TitleAlignments.Centered)] [HideLabel]
public BuildAssetEntity onBuildPipelineEntity;
[BoxGroup("Build", showLabel: false)]
@@ -248,93 +244,99 @@ namespace Stary.Evo.Editor
}
public static string BuildZip(BuildAssetDataSetting setting)
{
EditorUtility.DisplayProgressBar("提示", $"开始上传{setting.packageName}(打包zip)", 0.0f);
// 新增打包为zip的逻辑
string zipFileName =
$"{setting.packageName}_{setting.packageVersion}.zip";
//原yooAsset目录
var outputPackageDirectory =
$"{AssetBundleBuilderHelper.GetDefaultBuildOutputRoot()}/{EditorUserBuildSettings.activeBuildTarget}/{setting.packageName}";
//RawFile目录路径
var outputRawFileDirectory =
$"{AssetBundleBuilderHelper.GetDefaultBuildOutputRoot()}/{EditorUserBuildSettings.activeBuildTarget}/{setting.packageName}_RawFile";
//拷贝目录
string outFilePath = $"{outputPackageDirectory}/{setting.packageVersion}";
string outRawFilePath = $"{outputRawFileDirectory}/{setting.packageVersion}";
var copyPackageDirectory =
$"{Application.streamingAssetsPath}/{YooAssetSettingsData.GetDefaultYooFolderName()}/{setting.packageName}";
//拷贝BuildinCatalog文件
CreateBuildinCatalogFile("BuildinCatalog.json", copyPackageDirectory, outFilePath);
CreateBuildinCatalogFile("BuildinCatalog.bytes", copyPackageDirectory, outFilePath);
var copyRawFilePackageDirectory =
$"{Application.streamingAssetsPath}/{YooAssetSettingsData.GetDefaultYooFolderName()}/{setting.packageName}_RawFile";
CreateBuildinCatalogFile("BuildinCatalog.json", copyRawFilePackageDirectory, outRawFilePath);
CreateBuildinCatalogFile("BuildinCatalog.bytes", copyRawFilePackageDirectory, outRawFilePath);
//输出目录
string zipFilePath = Path.Combine(outputPackageDirectory, zipFileName);
try
{
using (FileStream zipStream = new FileStream(zipFilePath, FileMode.Create))
using (ZipArchive archive = new ZipArchive(zipStream, ZipArchiveMode.Create))
public static string BuildZip(BuildAssetDataSetting setting)
{
// 打包主包文件
foreach (string filePath in Directory.GetFiles(outFilePath, "*.*", SearchOption.AllDirectories))
{
// 获取文件在压缩包中的相对路径
string entryName =$"{setting.packageName}/{ Path.GetRelativePath(outFilePath, filePath)}";
// 创建zip条目
ZipArchiveEntry entry = archive.CreateEntry(entryName,
System.IO.Compression.CompressionLevel.Optimal);
EditorUtility.DisplayProgressBar("提示", $"开始上传{setting.packageName}(打包zip)", 0.0f);
// 新增打包为zip的逻辑
string zipFileName =
$"{setting.packageName}_{setting.packageVersion}.zip";
//原yooAsset目录
var outputPackageDirectory =
$"{AssetBundleBuilderHelper.GetDefaultBuildOutputRoot()}/{EditorUserBuildSettings.activeBuildTarget}/{setting.packageName}";
//拷贝目录
string outFilePath = $"{outputPackageDirectory}/{setting.packageVersion}";
var copyPackageDirectory =
$"{Application.streamingAssetsPath}/{YooAssetSettingsData.GetDefaultYooFolderName()}/{setting.packageName}";
// 写入文件内容
using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read))
using (Stream entryStream = entry.Open())
{
fileStream.CopyTo(entryStream);
}
//拷贝BuildinCatalog文件
CreateBuildinCatalogFile("BuildinCatalog.json", copyPackageDirectory, outFilePath);
CreateBuildinCatalogFile("BuildinCatalog.bytes", copyPackageDirectory, outFilePath);
//RawFile目录路径
string outputRawFileDirectory = "", outRawFilePath = "", copyRawFilePackageDirectory = "";
outputRawFileDirectory =
$"{AssetBundleBuilderHelper.GetDefaultBuildOutputRoot()}/{EditorUserBuildSettings.activeBuildTarget}/{setting.packageName}_RawFile";
if (Directory.Exists(outputRawFileDirectory))
{
outRawFilePath = $"{outputRawFileDirectory}/{setting.packageVersion}";
copyRawFilePackageDirectory =
$"{Application.streamingAssetsPath}/{YooAssetSettingsData.GetDefaultYooFolderName()}/{setting.packageName}_RawFile";
CreateBuildinCatalogFile("BuildinCatalog.json", copyRawFilePackageDirectory, outRawFilePath);
CreateBuildinCatalogFile("BuildinCatalog.bytes", copyRawFilePackageDirectory, outRawFilePath);
}
// 打包RawFile文件
if (Directory.Exists(outRawFilePath))
//输出目录
string zipFilePath = Path.Combine(outputPackageDirectory, zipFileName);
try
{
foreach (string filePath in Directory.GetFiles(outRawFilePath, "*.*", SearchOption.AllDirectories))
using (FileStream zipStream = new FileStream(zipFilePath, FileMode.Create))
using (ZipArchive archive = new ZipArchive(zipStream, ZipArchiveMode.Create))
{
// 获取文件在压缩包中的相对路径
string entryName =$"{setting.packageName}_RawFile/{ Path.GetRelativePath(outRawFilePath, filePath)}";
// 创建zip条目
ZipArchiveEntry entry = archive.CreateEntry(entryName,
System.IO.Compression.CompressionLevel.Optimal);
// 写入文件内容
using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read))
using (Stream entryStream = entry.Open())
// 打包主包文件
foreach (string filePath in Directory.GetFiles(outFilePath, "*.*", SearchOption.AllDirectories))
{
fileStream.CopyTo(entryStream);
// 获取文件在压缩包中的相对路径
string entryName = $"{setting.packageName}/{Path.GetRelativePath(outFilePath, filePath)}";
// 创建zip条目
ZipArchiveEntry entry = archive.CreateEntry(entryName,
System.IO.Compression.CompressionLevel.Optimal);
// 写入文件内容
using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read))
using (Stream entryStream = entry.Open())
{
fileStream.CopyTo(entryStream);
}
}
// 打包RawFile文件
if (Directory.Exists(outputRawFileDirectory) && Directory.Exists(outRawFilePath))
{
foreach (string filePath in Directory.GetFiles(outRawFilePath, "*.*",
SearchOption.AllDirectories))
{
// 获取文件在压缩包中的相对路径
string entryName =
$"{setting.packageName}_RawFile/{Path.GetRelativePath(outRawFilePath, filePath)}";
// 创建zip条目
ZipArchiveEntry entry = archive.CreateEntry(entryName,
System.IO.Compression.CompressionLevel.Optimal);
// 写入文件内容
using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read))
using (Stream entryStream = entry.Open())
{
fileStream.CopyTo(entryStream);
}
}
}
}
Debug.Log($"成功打包为zip{zipFilePath}");
EditorUtility.DisplayProgressBar("提示", $"开始上传{setting.packageName}(打包zip)", 0.25f);
return zipFilePath;
}
catch (Exception ex)
{
Debug.LogError($"打包zip失败{ex.Message}");
EditorUtility.ClearProgressBar();
return default;
}
}
Debug.Log($"成功打包为zip{zipFilePath}");
EditorUtility.DisplayProgressBar("提示", $"开始上传{setting.packageName}(打包zip)", 0.25f);
return zipFilePath;
}
catch (Exception ex)
{
Debug.LogError($"打包zip失败{ex.Message}");
EditorUtility.ClearProgressBar();
return default;
}
}
private static void CreateBuildinCatalogFile(string fileName, string copyPackageDirectory, string outFilePath)
{
@@ -355,8 +357,6 @@ namespace Stary.Evo.Editor
public static async Task UpdateFileDataResDomain(BuildAssetDataSetting setting, string zipFilePath)
{
string ip = CustomEditorPrefs.GetString("ip");
var messageEntity = await WebRequestSystem.PostFile(ip + "/FileLoad/UpLoadFile", new[] { zipFilePath });
EditorUtility.DisplayProgressBar("提示", $"开始上传{setting.packageName}(上传zip文件)", 0.5f);
@@ -401,7 +401,6 @@ namespace Stary.Evo.Editor
"确定");
setting.GetBuildPackageVersion(true);
}
}
EditorUtility.DisplayProgressBar("提示", $"开始上传{setting.packageName}(更新数据库)", 1f);
@@ -428,7 +427,8 @@ namespace Stary.Evo.Editor
DomainName = selectedPackageNames,
Platform = EditorUserBuildSettings.activeBuildTarget.ToString(),
};
var resResultMessage = await WebRequestSystem.Post(CustomEditorPrefs.GetString("ip") + "/ResDomain/GetResDomainByDomain",
var resResultMessage = await WebRequestSystem.Post(
CustomEditorPrefs.GetString("ip") + "/ResDomain/GetResDomainByDomain",
JsonConvert.SerializeObject(resDmainAddRequst));
//如果低于服务器版本,更新版本号
if (resResultMessage.code != 1011)
@@ -493,7 +493,6 @@ namespace Stary.Evo.Editor
}
private bool IsRelease()
{
return BuildAssetDataSetting.environmentType == EnvironmentType.Release;