From 0c5d95969a20c5b77adf54e568528b4e627eb472 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期六, 23 五月 2026 18:09:57 +0800
Subject: [PATCH] 打包资源bug跟export资源问题修复
---
Assets/Editor/Tool/ClientPackage.cs | 84 +++++++++++++++++++++--------------------
1 files changed, 43 insertions(+), 41 deletions(-)
diff --git a/Assets/Editor/Tool/ClientPackage.cs b/Assets/Editor/Tool/ClientPackage.cs
index c22b442..494ca79 100644
--- a/Assets/Editor/Tool/ClientPackage.cs
+++ b/Assets/Editor/Tool/ClientPackage.cs
@@ -8,6 +8,7 @@
using System.Text;
using Cysharp.Threading.Tasks;
using YooAsset.Editor;
+using UnityEngine.AssetBundles;
//using Beebyte.Obfuscator;
@@ -142,15 +143,22 @@
}
Debug.Log("[ClientPackage] YooAsset 璧勬簮鎵撳寘瀹屾垚銆�");
+ // 鎵撳寘鎴愬姛鍚庯紝灏嗗畬鏁� StreamingAssets/yoo 鎷疯礉鍒� Output Path锛堣鍓墠鎵ц锛岀‘淇濇嬁鍒板叏閲忚祫婧愶級
+ if (!string.IsNullOrEmpty(_assetBundlePath))
+ {
+ YooAssetBuildTool.CopyStreamingAssetsToOutputPath(_assetBundlePath);
+ }
+
// YooAsset StreamingAssets 鏍圭洰褰�
string yooRoot = AssetBundleBuilderHelper.GetStreamingAssetsRoot();
- // ---- NullAsset锛堝皬鍖咃級锛氬彧淇濈暀 Launch 蹇呴渶 Package锛屽叾瀹冭祫婧愪粠 CDN 鎸夐渶涓嬭浇 ----
+ // ---- NullAsset锛堝皬鍖咃級锛氫笉闅忓寘鎼哄甫 StreamingAssets 璧勬簮锛屽叏閮ㄤ粠 CDN 鎸夐渶涓嬭浇 ----
if (smallPackages.Count > 0)
{
- RemovePackagesExcept(yooRoot, LaunchRequiredYooPackages);
+ YooAssetBuildTool.ClearStreamingAssetsYooDirectory();
+ Debug.Log("[ClientPackage] NullAsset: 宸叉竻绌� StreamingAssets/yoo");
- // 鍐欏叆闅忓寘 Package 鍒楄〃锛岃繍琛屾椂 Builtin/Dll 鍒涘缓 BuildinFileSystem锛屽叾瀹冨寘璧� CacheFileSystem
+ // 鍐欏叆闅忓寘 Package 鍒楄〃锛孨ullAsset 涓虹┖鍒楄〃
YooAssetBuildTool.WriteBuildinPackageList();
for (int i = 0; i < smallPackages.Count; i++)
@@ -219,6 +227,7 @@
public static void BuildApk(string _sdkPath, string _output, string _publisher, int _buildIndex, bool _development, string _streamingAssetsOutputPath = null)
{
+ YooAssetBuildTool.DeleteStartupConfigsFromStreamingAssets();
PreBuild(_publisher, _buildIndex);
var auditTimeFile = StringUtility.Concat(Application.dataPath, Path.DirectorySeparatorChar.ToString(), "Resources/Config/AuditTime.txt");
if (File.Exists(auditTimeFile))
@@ -359,12 +368,6 @@
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
- if (_streamingAssetsOutputPath != null && !YooAssetBuildTool.CopyStreamingAssetsToOutputPath(_streamingAssetsOutputPath))
- {
- Debug.LogError("[ClientPackage] 鎷疯礉 StreamingAssets 鍒拌祫婧愯緭鍑虹洰褰曞け璐ワ紝涓 APK 鏋勫缓銆俆ARGET=" + _streamingAssetsOutputPath);
- return;
- }
-
// 纭繚涓嶄互 Gradle 宸ョ▼妯″紡杈撳嚭锛圚ybridCLR StripAOT 姝ラ浼氫复鏃剁疆涓� true锛岃嫢鏈繕鍘熷垯浼氳緭鍑烘枃浠跺す鑰岄潪 APK锛�
EditorUserBuildSettings.exportAsGoogleAndroidProject = false;
@@ -411,46 +414,42 @@
string copySdkFile;
copySdkFile = StringUtility.Concat(SDK_PLUGIN_PROJECT, "/Channel/Android/", versionConfig.sdkFileName, "/AndroidManifest.xml");
File.Copy(copySdkFile, MANIFEST_PATH);
- PreBuild(_publisher, _buildIndex);
PlayerSettings.Android.bundleVersionCode = VersionConfig.GetVersionNumber(versionConfig.version);
PlayerSettings.enableInternalProfiler = _development;
- //瀹屾暣鍙朣treamingAssets 璧勬簮
-
- // // 鍏堟竻鐞哠treamingAssets锛屽啀鏍规嵁assetAccess閰嶇疆鎷疯礉璧勬簮鍒癝treamingAssets
- // var streamingPath = ResourcesPath.Instance.StreamingAssetPath;
- // if (Directory.Exists(streamingPath))
- // Directory.Delete(streamingPath, true);
-
- // if (!string.IsNullOrEmpty(_assetBundlePath) && Directory.Exists(_assetBundlePath))
- // {
- // switch (versionConfig.assetAccess)
- // {
- // case InstalledAsset.NullAsset:
- // CopyNullAssetResources(_assetBundlePath, streamingPath);
- // break;
- // case InstalledAsset.HalfAsset:
- // CopyHalfAssetResources(_assetBundlePath, streamingPath);
- // break;
- // case InstalledAsset.FullAsset:
- // case InstalledAsset.IngoreDownLoad:
- // CopyFullAssetResources(_assetBundlePath, streamingPath);
- // break;
- // }
- // Debug.LogFormat("璧勬簮鎷疯礉瀹屾垚({0})锛屼粠 {1} 鍒� {2}", versionConfig.assetAccess, _assetBundlePath, streamingPath);
- // }
- // else
- // {
- // Debug.LogWarningFormat("AssetBundle璺緞涓虹┖鎴栦笉瀛樺湪: {0}锛屽鍑哄伐绋嬪皢涓嶅寘鍚父鎴忚祫婧�", _assetBundlePath);
- // }
-
- if (_assetBundlePath != null && !YooAssetBuildTool.CopyStreamingAssetsToOutputPath(_assetBundlePath))
+ if (!YooAssetBuildTool.BuildAllPackagesCore(incremental: false, _assetBundlePath))
{
- Debug.LogError("[ClientPackage] 鎷疯礉 StreamingAssets 鍒拌祫婧愯緭鍑虹洰褰曞け璐ワ紝涓 Android 宸ョ▼瀵煎嚭銆俆ARGET=" + _assetBundlePath);
+ Debug.LogError("[ClientPackage] YooAsset 璧勬簮鎵撳寘澶辫触锛屼腑姝� Android 宸ョ▼瀵煎嚭銆�");
return;
}
+
+ string yooRoot = AssetBundleBuilderHelper.GetStreamingAssetsRoot();
+ switch (versionConfig.assetAccess)
+ {
+ case InstalledAsset.NullAsset:
+ YooAssetBuildTool.ClearStreamingAssetsYooDirectory();
+ 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");
+ foreach (var pkgName in removePackages)
+ {
+ string pkgDir = Path.Combine(yooRoot, pkgName);
+ if (Directory.Exists(pkgDir))
+ {
+ Directory.Delete(pkgDir, true);
+ Debug.Log($"[ClientPackage] HalfAsset Export: 宸插墧闄� Package '{pkgName}'");
+ }
+ }
+ break;
+ }
+
+ YooAssetBuildTool.WriteBuildinPackageList();
+ YooAssetBuildTool.DeleteStartupConfigsFromStreamingAssets();
+ PreBuild(_publisher, _buildIndex);
// 鍏抽敭璁剧疆锛氬鍑轰负Gradle宸ョ▼鑰岄潪鐩存帴鎵揂PK
EditorUserBuildSettings.exportAsGoogleAndroidProject = true;
@@ -475,6 +474,9 @@
Debug.LogFormat("瀵煎嚭Android宸ョ▼瀹屾垚锛佽緭鍑鸿矾寰�: {0}", outputDir);
+ // 鎭㈠瀹屾暣 StreamingAssets 渚涘悗缁墦鍖呬娇鐢�
+ RestoreYooStreamingAssets();
+
// 瀵煎嚭瀹屾垚鍚庢仮澶嶈缃�
EditorUserBuildSettings.exportAsGoogleAndroidProject = false;
EditorUserBuildSettings.development = false;
--
Gitblit v1.8.0