From f96c3094965a63f4e471e8050ef459dc9bace969 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期六, 09 五月 2026 20:00:20 +0800
Subject: [PATCH] 592 多语言适配 TextLanguageAdapterEditor支持手动设置目标组件和组件类型,避免复制TextLanguageAdapterEditor组件时目标组件还锁在旧的组件上无法设置

---
 Assets/Editor/UIComponent/TextLanguageAdapterEditor.cs |   26 +++++++++++++++++++++-----
 1 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/Assets/Editor/UIComponent/TextLanguageAdapterEditor.cs b/Assets/Editor/UIComponent/TextLanguageAdapterEditor.cs
index 8c2934b..828752a 100644
--- a/Assets/Editor/UIComponent/TextLanguageAdapterEditor.cs
+++ b/Assets/Editor/UIComponent/TextLanguageAdapterEditor.cs
@@ -40,14 +40,30 @@
         {
             EditorGUILayout.LabelField("鍩烘湰淇℃伅", EditorStyles.boldLabel);
             
-            using (new EditorGUI.DisabledScope(true))
+            EditorGUI.BeginChangeCheck();
+            
+            // 鍏佽鎵嬪姩鎷栨嫿鐩爣缁勪欢鍜岃缃被鍨�
+            Component newTarget = (Component)EditorGUILayout.ObjectField("鐩爣缁勪欢", adapter.TargetTextComponent, typeof(Component), true);
+            TextComponentType newType = (TextComponentType)EditorGUILayout.EnumPopup("缁勪欢绫诲瀷", adapter.TargetTextType);
+            
+            if (EditorGUI.EndChangeCheck())
             {
-                EditorGUILayout.ObjectField("鐩爣缁勪欢", adapter.LanguageConfigs.keys.Count > 0 ? adapter.TargetTextComponent : null, typeof(Component), true);
-                EditorGUILayout.EnumPopup("缁勪欢绫诲瀷", adapter.TargetTextType);
+                Undo.RecordObject(adapter, "Update Basic Info");
+                
+                // 鏅鸿兘杈呭姪锛氬綋鐢ㄦ埛鎷栨嫿鏂扮粍浠舵椂锛屽皾璇曡嚜鍔ㄥ尮閰嶄竴涓嬬被鍨嬶紝浣嗕篃鍏佽鎵嬪姩瑕嗙洊
+                if (newTarget != null && newTarget != adapter.TargetTextComponent)
+                {
+                    string typeName = newTarget.GetType().Name;
+                    if (typeName == "GradientText") newType = TextComponentType.GradientText;
+                    else if (typeName == "TextEx") newType = TextComponentType.TextEx;
+                    else if (newTarget is UnityEngine.UI.Text) newType = TextComponentType.Text;
+                }
+
+                adapter.TargetTextComponent = newTarget;
+                adapter.TargetTextType = newType;
             }
 
-            if (GUILayout.Button("鍒锋柊缁勪欢妫�娴�", GUILayout.Width(120))) adapter.Editor_ForceRefreshDetection();
-            EditorGUILayout.HelpBox("缁勪欢鎴栫被鍨嬪彉鏇村悗闇�鎵ц鍒锋柊缁勪欢妫�娴�", MessageType.Info);
+            EditorGUILayout.HelpBox("璇锋墜鍔ㄦ嫋鎷借閫傞厤鐨勬枃鏈粍浠讹紝骞剁‘璁ょ粍浠剁被鍨嬫槸鍚︽纭��", MessageType.Info);
         }
     }
 

--
Gitblit v1.8.0