From ad335df78a01b72e8a2836d92c792872ebe1e317 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 11 五月 2026 16:43:53 +0800
Subject: [PATCH] 修复报错

---
 Assets/Editor/Tool/ClientPackage.cs |  223 ++++++++++++++++++++++++++++---------------------------
 1 files changed, 113 insertions(+), 110 deletions(-)

diff --git a/Assets/Editor/Tool/ClientPackage.cs b/Assets/Editor/Tool/ClientPackage.cs
index b7741a9..197ab9e 100644
--- a/Assets/Editor/Tool/ClientPackage.cs
+++ b/Assets/Editor/Tool/ClientPackage.cs
@@ -500,144 +500,147 @@
     /// </summary>
     static void CopyHalfAssetResources(string _assetBundlePath, string _streamingPath)
     {
-        PriorBundleConfig.LazyInit();
-
-        var fromFiles = new List<FileInfo>();
-        FileExtersion.GetAllDirectoryFileInfos(_assetBundlePath, fromFiles);
-
-        var excludeFileFullNames = new List<string>();
-
-        // 鍓旈櫎浼樺厛绾т綆鐨刪ero璧勬簮
-        var tempFiles = new List<FileInfo>();
-        FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/hero"), tempFiles);
-        foreach (var file in tempFiles)
+        PriorBundleConfig.InitForEditor(() =>
         {
-            var fileName = Path.GetFileNameWithoutExtension(file.FullName);
-            var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Mob, AssetVersionUtility.DecodeFileName(fileName));
-            if (prior > AssetPrior)
-            {
-                excludeFileFullNames.Add(file.FullName);
-            }
-        }
+            var fromFiles = new List<FileInfo>();
+            FileExtersion.GetAllDirectoryFileInfos(_assetBundlePath, fromFiles);
 
-        // 鍓旈櫎浼樺厛绾т綆鐨刴aps璧勬簮
-        tempFiles.Clear();
-        FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/maps"), tempFiles);
-        foreach (var file in tempFiles)
-        {
-            var fileName = Path.GetFileNameWithoutExtension(file.FullName);
-            var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Scene, AssetVersionUtility.DecodeFileName(fileName));
-            if (prior > AssetPrior)
-            {
-                excludeFileFullNames.Add(file.FullName);
-            }
-        }
+            var excludeFileFullNames = new List<string>();
 
-        // 鍓旈櫎浼樺厛绾т綆鐨刟udio璧勬簮
-        tempFiles.Clear();
-        FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/audio"), tempFiles);
-        foreach (var file in tempFiles)
-        {
-            var fileName = Path.GetFileNameWithoutExtension(file.FullName);
-            var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Audio, AssetVersionUtility.DecodeFileName(fileName));
-            if (prior > AssetPrior)
-            {
-                excludeFileFullNames.Add(file.FullName);
-            }
-        }
-
-        // 鍓旈櫎浼樺厛绾т綆鐨剈ieffect璧勬簮
-        tempFiles.Clear();
-        FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/uieffect"), tempFiles);
-        foreach (var file in tempFiles)
-        {
-            var fileName = Path.GetFileNameWithoutExtension(file.FullName);
-            var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Effect, AssetVersionUtility.DecodeFileName(fileName));
-            if (prior > AssetPrior)
-            {
-                excludeFileFullNames.Add(file.FullName);
-            }
-        }
-
-        // 鍓旈櫎瑙嗛璧勬簮
-        tempFiles.Clear();
-        var videoPath = StringUtility.Concat(_assetBundlePath, "/video");
-        if (Directory.Exists(videoPath))
-        {
-            FileExtersion.GetAllDirectoryFileInfos(videoPath, tempFiles);
+            // 鍓旈櫎浼樺厛绾т綆鐨刪ero璧勬簮
+            var tempFiles = new List<FileInfo>();
+            FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/hero"), tempFiles);
             foreach (var file in tempFiles)
             {
                 var fileName = Path.GetFileNameWithoutExtension(file.FullName);
-                var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Video, AssetVersionUtility.DecodeFileName(fileName));
+                var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Mob, AssetVersionUtility.DecodeFileName(fileName));
                 if (prior > AssetPrior)
                 {
                     excludeFileFullNames.Add(file.FullName);
                 }
             }
-        }
 
-        // 鍓旈櫎琛ㄨ祫婧�
-        if (!includeConfig)
-        {
+            // 鍓旈櫎浼樺厛绾т綆鐨刴aps璧勬簮
             tempFiles.Clear();
-            FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/config"), tempFiles);
-            foreach (var file in tempFiles)
-            {
-                excludeFileFullNames.Add(file.FullName);
-            }
-        }
-
-        // 鍓旈櫎UI璧勬簮
-        if (!includeUI)
-        {
-            tempFiles.Clear();
-            FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/ui"), tempFiles);
-            foreach (var file in tempFiles)
-            {
-                excludeFileFullNames.Add(file.FullName);
-            }
-        }
-        else
-        {
-            tempFiles.Clear();
-            FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/ui"), tempFiles);
+            FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/maps"), tempFiles);
             foreach (var file in tempFiles)
             {
                 var fileName = Path.GetFileNameWithoutExtension(file.FullName);
-                var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.UI, fileName);
+                var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Scene, AssetVersionUtility.DecodeFileName(fileName));
                 if (prior > AssetPrior)
                 {
                     excludeFileFullNames.Add(file.FullName);
                 }
             }
-        }
 
-        // 浠庢枃浠跺垪琛ㄤ腑绉婚櫎闇�瑕佹帓闄ょ殑鏂囦欢
-        for (int i = fromFiles.Count - 1; i >= 0; i--)
-        {
-            if (excludeFileFullNames.Contains(fromFiles[i].FullName))
+            // 鍓旈櫎浼樺厛绾т綆鐨刟udio璧勬簮
+            tempFiles.Clear();
+            FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/audio"), tempFiles);
+            foreach (var file in tempFiles)
             {
-                fromFiles.RemoveAt(i);
+                var fileName = Path.GetFileNameWithoutExtension(file.FullName);
+                var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Audio, AssetVersionUtility.DecodeFileName(fileName));
+                if (prior > AssetPrior)
+                {
+                    excludeFileFullNames.Add(file.FullName);
+                }
             }
-        }
 
-        foreach (var item in fromFiles)
-        {
-            var extension = Path.GetExtension(item.FullName);
-            if (extension == ".meta")
-                continue;
+            // 鍓旈櫎浼樺厛绾т綆鐨剈ieffect璧勬簮
+            tempFiles.Clear();
+            FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/uieffect"), tempFiles);
+            foreach (var file in tempFiles)
+            {
+                var fileName = Path.GetFileNameWithoutExtension(file.FullName);
+                var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Effect, AssetVersionUtility.DecodeFileName(fileName));
+                if (prior > AssetPrior)
+                {
+                    excludeFileFullNames.Add(file.FullName);
+                }
+            }
 
-            var relativePath = FileExtersion.GetFileRelativePath(_assetBundlePath, item.FullName);
-            if (relativePath.StartsWith("patch"))
-                continue;
+            // 鍓旈櫎瑙嗛璧勬簮
+            tempFiles.Clear();
+            var videoPath = StringUtility.Concat(_assetBundlePath, "/video");
+            if (Directory.Exists(videoPath))
+            {
+                FileExtersion.GetAllDirectoryFileInfos(videoPath, tempFiles);
+                foreach (var file in tempFiles)
+                {
+                    var fileName = Path.GetFileNameWithoutExtension(file.FullName);
+                    var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.Video, AssetVersionUtility.DecodeFileName(fileName));
+                    if (prior > AssetPrior)
+                    {
+                        excludeFileFullNames.Add(file.FullName);
+                    }
+                }
+            }
 
-            var to = StringUtility.Concat(_streamingPath, relativePath);
-            var directory = Path.GetDirectoryName(to);
-            if (!Directory.Exists(directory))
-                Directory.CreateDirectory(directory);
+            // 鍓旈櫎琛ㄨ祫婧�
+            if (!includeConfig)
+            {
+                tempFiles.Clear();
+                FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/config"), tempFiles);
+                foreach (var file in tempFiles)
+                {
+                    excludeFileFullNames.Add(file.FullName);
+                }
+            }
 
-            File.Copy(item.FullName, to, true);
-        }
+            // 鍓旈櫎UI璧勬簮
+            if (!includeUI)
+            {
+                tempFiles.Clear();
+                FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/ui"), tempFiles);
+                foreach (var file in tempFiles)
+                {
+                    excludeFileFullNames.Add(file.FullName);
+                }
+            }
+            else
+            {
+                tempFiles.Clear();
+                FileExtersion.GetAllDirectoryFileInfos(StringUtility.Concat(_assetBundlePath, "/ui"), tempFiles);
+                foreach (var file in tempFiles)
+                {
+                    var fileName = Path.GetFileNameWithoutExtension(file.FullName);
+                    var prior = PriorBundleConfig.GetAssetPrior(AssetVersion.AssetCategory.UI, fileName);
+                    if (prior > AssetPrior)
+                    {
+                        excludeFileFullNames.Add(file.FullName);
+                    }
+                }
+            }
+
+            // 浠庢枃浠跺垪琛ㄤ腑绉婚櫎闇�瑕佹帓闄ょ殑鏂囦欢
+            for (int i = fromFiles.Count - 1; i >= 0; i--)
+            {
+                if (excludeFileFullNames.Contains(fromFiles[i].FullName))
+                {
+                    fromFiles.RemoveAt(i);
+                }
+            }
+
+            foreach (var item in fromFiles)
+            {
+                var extension = Path.GetExtension(item.FullName);
+                if (extension == ".meta")
+                    continue;
+
+                var relativePath = FileExtersion.GetFileRelativePath(_assetBundlePath, item.FullName);
+                if (relativePath.StartsWith("patch"))
+                    continue;
+
+                var to = StringUtility.Concat(_streamingPath, relativePath);
+                var directory = Path.GetDirectoryName(to);
+                if (!Directory.Exists(directory))
+                    Directory.CreateDirectory(directory);
+
+                File.Copy(item.FullName, to, true);
+            }
+        });
+
+        
     }
 
     /// <summary>

--
Gitblit v1.8.0