From 0a3bfa23a80b0d31b08d09d3e48d30cb75964559 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 01 六月 2026 18:37:49 +0800
Subject: [PATCH] 打包修改
---
Assets/Editor/Tool/ClientPackage.cs | 72 ++++++++++++++++++++++++++++++------
1 files changed, 60 insertions(+), 12 deletions(-)
diff --git a/Assets/Editor/Tool/ClientPackage.cs b/Assets/Editor/Tool/ClientPackage.cs
index 43daaea..d47cbc4 100644
--- a/Assets/Editor/Tool/ClientPackage.cs
+++ b/Assets/Editor/Tool/ClientPackage.cs
@@ -17,6 +17,7 @@
public static readonly string versionsFilePath = Application.dataPath + "/Editor/VersionConfigs/Versions.txt";
public static readonly string[] baseLevels = new string[] { "Assets/Resources/Scenes/Launch.unity" };
private static readonly string[] LaunchRequiredYooPackages = { "Builtin", "Dll" };
+ private static readonly string[] YooAssetNoCompressExtensions = { ".unity3d", ".bundle", ".bytes", ".hash", ".version", ".json", ".txt" };
public static string auditOutTime = string.Empty;
@@ -177,9 +178,7 @@
// ---- HalfAsset锛堜腑鍖咃級锛氬墧闄ら儴鍒� Package ----
if (halfPackages.Count > 0)
{
- // 鎸夋棫閫昏緫鏄犲皠锛歨ero鈫払attle, audio鈫扐udio, video鈫扸ideo, uieffect鈫扷IEffect
- var removePackages = new List<string> { "Battle", "Audio", "Video", "UIEffect" };
- if (!includeUI) removePackages.Add("UI");
+ var removePackages = CreateHalfAssetRemovePackages();
foreach (var pkgName in removePackages)
{
@@ -328,6 +327,7 @@
// File.Copy(copySdkFile, File_google_services);
copySdkFile = StringUtility.Concat(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/gradleTemplate.properties");
File.Copy(copySdkFile, File_gradleTemplate);
+ EnsureYooAssetNoCompressExtensions(File_gradleTemplate);
copySdkFile = StringUtility.Concat(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/LauncherManifest.xml");
File.Copy(copySdkFile, File_LauncherManifest);
copySdkFile = StringUtility.Concat(_sdkPath, "/Channel/Android/", versionConfig.sdkFileName, "/launcherTemplate.gradle");
@@ -433,8 +433,7 @@
Debug.Log("[ClientPackage] NullAsset Export: 宸叉竻绌� StreamingAssets/yoo");
break;
case InstalledAsset.HalfAsset:
- var removePackages = new List<string> { "Battle", "Audio", "Video", "UIEffect" };
- if (!includeUI) removePackages.Add("UI");
+ var removePackages = CreateHalfAssetRemovePackages();
foreach (var pkgName in removePackages)
{
string pkgDir = Path.Combine(yooRoot, pkgName);
@@ -514,11 +513,6 @@
File.Copy(item.FullName, to, true);
}
- }
-
- static bool IsOPConfigFile(FileInfo file)
- {
- return file.Name.EndsWith("OPConfig.txt", StringComparison.OrdinalIgnoreCase);
}
/// <summary>
@@ -650,7 +644,7 @@
foreach (var item in fromFiles)
{
- if (IsOPConfigFile(item))
+ if (AssetVersionUtility.IsOPConfigFileName(item.Name))
continue;
var extension = Path.GetExtension(item.FullName);
@@ -682,7 +676,7 @@
FileExtersion.GetAllDirectoryFileInfos(_assetBundlePath, files);
foreach (var file in files)
{
- if (IsOPConfigFile(file))
+ if (AssetVersionUtility.IsOPConfigFileName(file.Name))
continue;
var extension = Path.GetExtension(file.FullName);
@@ -785,6 +779,21 @@
{
Debug.Log("[ClientPackage] 鎭㈠ YooAsset StreamingAssets 鍒板畬鏁寸姸鎬�...");
YooAssetBuildTool.RestoreBuildOutputToStreamingAssets();
+ }
+
+ private static List<string> CreateHalfAssetRemovePackages()
+ {
+ var removePackages = new List<string> { "Battle", "Hero", "Audio", "Video", "UIEffect" };
+ if (!includeUI)
+ {
+ removePackages.Add("UI");
+ removePackages.Add("UIComp");
+ removePackages.Add("Sprite");
+ removePackages.Add("Texture");
+ removePackages.Add("Font");
+ }
+
+ return removePackages;
}
//闅忓寘瀹夎鐨勮祫婧愪笉鍚屽钩鍙颁笉涓�瀹氬彲浠ヨ幏鍙朏ileInfo锛屾墍浠ラ渶瑕佷笅杞戒竴涓枃浠舵潵鑾峰彇璧勬簮鐨凪D5淇℃伅
@@ -962,6 +971,45 @@
}
}
+ static void EnsureYooAssetNoCompressExtensions(string gradleTemplatePath)
+ {
+ if (!File.Exists(gradleTemplatePath))
+ {
+ Debug.LogWarning($"[ClientPackage] gradleTemplate.properties not found: {gradleTemplatePath}");
+ return;
+ }
+
+ string text = File.ReadAllText(gradleTemplatePath);
+ var lineRegex = new Regex(@"(?m)^unityStreamingAssets\s*=\s*(.*)$");
+ var match = lineRegex.Match(text);
+ var extensions = new List<string>();
+ var extensionSet = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
+
+ if (match.Success)
+ {
+ foreach (var value in match.Groups[1].Value.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
+ {
+ var extension = value.Trim();
+ if (extension.Length > 0 && extensionSet.Add(extension))
+ extensions.Add(extension);
+ }
+ }
+
+ foreach (var extension in YooAssetNoCompressExtensions)
+ {
+ if (extensionSet.Add(extension))
+ extensions.Add(extension);
+ }
+
+ string newLine = "unityStreamingAssets=" + string.Join(",", extensions);
+ text = match.Success
+ ? lineRegex.Replace(text, newLine, 1)
+ : text.TrimEnd() + Environment.NewLine + newLine + Environment.NewLine;
+
+ File.WriteAllText(gradleTemplatePath, text, new UTF8Encoding(false));
+ Debug.Log($"[ClientPackage] Ensured Android noCompress extensions: {newLine}");
+ }
+
/// <summary>
/// 瀵煎嚭 Gradle 宸ョ▼鍓嶆竻鐞� Assets/Plugins/Android锛堜繚鐣� libs 鐩綍锛�
/// </summary>
--
Gitblit v1.8.0