From 6909b1c7b4f2e6f602e35b9f5568b7e0fcf3f04a Mon Sep 17 00:00:00 2001 From: ayuan9957 <107920784+ayuan9957@users.noreply.github.com> Date: Thu, 16 Jul 2026 16:25:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=203D=E6=96=87=E5=AD=97=E7=BF=BB=E8=AF=91?= =?UTF-8?q?=E9=87=8D=E6=9E=84=20-=20=E5=88=86=E7=A6=BB=E8=BD=A6=E8=BE=86?= =?UTF-8?q?=E5=90=8D=E7=A7=B0/=E5=8E=82=E5=8C=BA=E5=90=8D=E7=A7=B0/?= =?UTF-8?q?=E5=90=8E=E7=BC=80=E7=8B=AC=E7=AB=8B=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Text3DCtrl: 新增SetName(text, area, suffix)重载,各部分独立翻译 - CarCtrl.Update3DText: 从carName中分离(1)等后缀,纯名称查翻译表 - 修复车辆展开后名称含中文问题(组合字符串无法匹配翻译表) - 修复收起/展开后文字不刷新问题(LanguageChanged事件重建文本) --- Assets/Scripts/GameObjectCtrl/CarCtrl.cs | 12 +++++++---- Assets/Scripts/GameObjectCtrl/Text3DCtrl.cs | 24 ++++++++++++++++++++- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/Assets/Scripts/GameObjectCtrl/CarCtrl.cs b/Assets/Scripts/GameObjectCtrl/CarCtrl.cs index cb4efac..2ff8303 100644 --- a/Assets/Scripts/GameObjectCtrl/CarCtrl.cs +++ b/Assets/Scripts/GameObjectCtrl/CarCtrl.cs @@ -332,14 +332,18 @@ public class CarCtrl : MonoBehaviour, IBindIcon,IShowName3DText //if (Text3DCtrl_Names == null) // Text3DCtrl_Names = this.GetComponentsInChildren(); - string textValue = data.carName; - if (!string.IsNullOrEmpty(inAreaName)) + string carName = data.carName; + string nameSuffix = ""; + int idx = carName.IndexOf('('); + if (idx > 0) { - textValue = $"{textValue}({inAreaName})"; + nameSuffix = carName.Substring(idx); + carName = carName.Substring(0, idx); } + string areaName = inAreaName; for (int i = 0; i < Text3DCtrl_Names.Length; i++) { - Text3DCtrl_Names[i]?.SetName(textValue); + Text3DCtrl_Names[i]?.SetName(carName, areaName, nameSuffix); } } diff --git a/Assets/Scripts/GameObjectCtrl/Text3DCtrl.cs b/Assets/Scripts/GameObjectCtrl/Text3DCtrl.cs index 9638fe7..87e236b 100644 --- a/Assets/Scripts/GameObjectCtrl/Text3DCtrl.cs +++ b/Assets/Scripts/GameObjectCtrl/Text3DCtrl.cs @@ -9,6 +9,8 @@ public class Text3DCtrl : MonoBehaviour Transform targetTrans; float angleX; string sourceText; + string extraText; + string suffixText; public void SetLayer(string LayerName) { @@ -48,9 +50,29 @@ public class Text3DCtrl : MonoBehaviour public void SetName(string text) { sourceText = text; + extraText = null; + suffixText = null; textMesh.text = LocalizationManager.Get(text); } + public void SetName(string text, string area, string suffix = null) + { + sourceText = text; + extraText = area; + suffixText = suffix; + UpdateDisplayText(); + } + + private void UpdateDisplayText() + { + string name = LocalizationManager.Get(sourceText); + if (!string.IsNullOrEmpty(suffixText)) + name += suffixText; + if (!string.IsNullOrEmpty(extraText)) + name = $"{name}({LocalizationManager.Get(extraText)})"; + textMesh.text = name; + } + //选选取的时候 改变文字颜色 public void ChangeTextColor(Color newColor) { @@ -65,7 +87,7 @@ public class Text3DCtrl : MonoBehaviour private void OnLanguageChanged() { if (!string.IsNullOrEmpty(sourceText)) - textMesh.text = LocalizationManager.Get(sourceText); + UpdateDisplayText(); } void OnDestroy()