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();