From baf1a8cc5a52720c27dc672b0b8b0c1eb726c3a0 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期六, 09 五月 2026 20:00:37 +0800
Subject: [PATCH] 592 多语言适配 TextLanguageAdapterEditor支持手动设置目标组件和组件类型,避免复制TextLanguageAdapterEditor组件时目标组件还锁在旧的组件上无法设置
---
Main/Component/UI/Core/TextLanguageAdapter.cs | 58 +++++++++++++---------------------------------------------
1 files changed, 13 insertions(+), 45 deletions(-)
diff --git a/Main/Component/UI/Core/TextLanguageAdapter.cs b/Main/Component/UI/Core/TextLanguageAdapter.cs
index edcd1c2..15f14aa 100644
--- a/Main/Component/UI/Core/TextLanguageAdapter.cs
+++ b/Main/Component/UI/Core/TextLanguageAdapter.cs
@@ -156,11 +156,20 @@
private bool m_IsApplied = false;
- public TextComponentType TargetTextType => m_TargetTextType;
- public Component TargetTextComponent => m_TargetTextComponent;
+ // 寮�鏀� set 鏉冮檺锛屽厑璁稿閮ㄦ垨缂栬緫鍣ㄦ墜鍔ㄨ祴鍊�
+ public TextComponentType TargetTextType
+ {
+ get => m_TargetTextType;
+ set => m_TargetTextType = value;
+ }
+
+ public Component TargetTextComponent
+ {
+ get => m_TargetTextComponent;
+ set => m_TargetTextComponent = value;
+ }
+
public LanguageConfigDictionary LanguageConfigs => m_LanguageConfigs;
-
- private void Awake() => DetectTargetComponent();
private void OnEnable()
{
@@ -170,14 +179,6 @@
ApplyConfig(langId);
}
}
-
-#if UNITY_EDITOR
- private void Reset()
- {
- DetectTargetComponent();
- if (!HasConfig(DefaultLangId)) ReadCurrentToConfig(DefaultLangId);
- }
-#endif
public LanguageConfigItem GetConfig(string languageId) => m_LanguageConfigs.Get(languageId);
public void SetConfig(string languageId, LanguageConfigItem config) => m_LanguageConfigs.Set(languageId, config);
@@ -212,40 +213,7 @@
return languageId;
}
- private void DetectTargetComponent()
- {
- if (m_TargetTextComponent != null)
- {
- DetermineTextType(m_TargetTextComponent);
- return;
- }
-
- m_TargetTextComponent = GetComponent<GradientText>() ?? GetComponentInChildren<GradientText>(true) as Component
- ?? GetComponent<TextEx>() ?? GetComponentInChildren<TextEx>(true) as Component
- ?? GetComponent<Text>() ?? GetComponentInChildren<Text>(true) as Component;
-
- DetermineTextType(m_TargetTextComponent);
- }
-
- private void DetermineTextType(Component component)
- {
- m_TargetTextType = component switch
- {
- GradientText _ => TextComponentType.GradientText,
- TextEx _ => TextComponentType.TextEx,
- Text _ => TextComponentType.Text,
- _ => TextComponentType.None
- };
- }
-
#if UNITY_EDITOR
- [ContextMenu("鍒锋柊缁勪欢妫�娴�")]
- public void Editor_ForceRefreshDetection()
- {
- DetectTargetComponent();
- UnityEditor.EditorUtility.SetDirty(this);
- }
-
[ContextMenu("璇诲彇褰撳墠閰嶇疆")]
public void Editor_ReadCurrentConfig()
{
--
Gitblit v1.8.0