From 1aa6010c6bba6ae1ba282a9d1d823b3121e6b7d0 Mon Sep 17 00:00:00 2001 From: wuwenbo Date: Sat, 23 Aug 2025 16:46:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0prefab=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E5=A4=9A=E8=AF=AD=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Editor/MultilingualEditorWindow.cs | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/Unity/Assets/Scripts/TH1_Logic/Editor/MultilingualEditorWindow.cs b/Unity/Assets/Scripts/TH1_Logic/Editor/MultilingualEditorWindow.cs index 234860466..21d7f17d6 100644 --- a/Unity/Assets/Scripts/TH1_Logic/Editor/MultilingualEditorWindow.cs +++ b/Unity/Assets/Scripts/TH1_Logic/Editor/MultilingualEditorWindow.cs @@ -394,6 +394,24 @@ namespace Logic.Editor } var coms = uiObj.GetComponentsInChildren(true).ToList(); + // 处理 Assets/Resources/Prefab 路径下的所有 prefab + var prefabList = new List(); + var prefabPath = $"Assets/Resources/Prefab/"; + if (Directory.Exists(prefabPath)) + { + string[] prefabPaths = Directory.GetFiles(prefabPath, "*.prefab", SearchOption.AllDirectories); + foreach (var prefabAssetPath in prefabPaths) + { + var prefab = AssetDatabase.LoadAssetAtPath(prefabAssetPath); + if (!prefab) continue; + + var prefabComs = prefab.GetComponentsInChildren(true).ToList(); + if (prefabComs.Count == 0) continue; + foreach (var com in prefabComs)coms.Add(com); + prefabList.Add(prefab); + } + } + foreach (var com in coms) { if (!Regex.IsMatch(com.text, @"[\u4E00-\u9FFF\u3400-\u4DBFa-zA-Z]")) continue; @@ -415,7 +433,7 @@ namespace Logic.Editor } _activeSet.Add(textCom.ID); } - + var path = $"Assets/Resources/DataAssets/"; string[] assetPaths = Directory.GetFiles(path, "*.asset", SearchOption.AllDirectories); foreach (var assetPath in assetPaths) @@ -461,6 +479,7 @@ namespace Logic.Editor WriteToExcel(); + foreach (var prefab in prefabList) EditorUtility.SetDirty(prefab); EditorUtility.SetDirty(_asset); AssetDatabase.SaveAssets(); AssetDatabase.Refresh();