| using UnityEngine.UI; | 
| using UnityEngine; | 
|   | 
| public class TextEx : Text | 
| { | 
|     [SerializeField] | 
|     bool m_IsKey = false; | 
|     public bool isKey | 
|     { | 
|         get | 
|         { | 
|             return m_IsKey; | 
|         } | 
|         set | 
|         { | 
|             m_IsKey = value; | 
|         } | 
|     } | 
|   | 
|     [SerializeField] | 
|     private string m_KeyName; | 
|     public string keyName | 
|     { | 
|         get { return m_KeyName; } | 
|         set { m_KeyName = value; } | 
|     } | 
|   | 
|     [SerializeField] | 
|     TextColType m_ColorType = TextColType.None; | 
|     public TextColType colorType | 
|     { | 
|         get { return m_ColorType; } | 
|         set | 
|         { | 
|             if (m_ColorType != value) | 
|             { | 
|                 m_ColorType = value; | 
|                 if (m_ColorType == TextColType.None) | 
|                     return; | 
|                 this.color = UIHelper.GetUIColor(value, bgColorType == BackGroundColorType.Bright); | 
|             } | 
|         } | 
|     } | 
|   | 
|     [SerializeField] | 
|     private BackGroundColorType m_BGColorType = BackGroundColorType.Dark; | 
|     public BackGroundColorType bgColorType | 
|     { | 
|         get { return m_BGColorType; } | 
|         set {  | 
|             m_BGColorType = value; | 
|             if (m_ColorType == TextColType.None) | 
|                 return; | 
|             this.color = UIHelper.GetUIColor(colorType, m_BGColorType == BackGroundColorType.Bright); | 
|         } | 
|     } | 
|   | 
|     public enum BackGroundColorType | 
|     { | 
|         Dark, | 
|         Bright, | 
|     } | 
|   | 
|   | 
|     protected override void Awake() | 
|     { | 
|         if (Application.isPlaying) | 
|         { | 
|             //设置默认的字体 | 
|             if (isKey) | 
|             { | 
|                 if (!string.IsNullOrEmpty(keyName)) | 
|                 { | 
|                     this.text = UIHelper.ReplaceNewLine(Language.Get(keyName)); | 
|                 } | 
|                 else | 
|                 { | 
|                     Debug.LogError("程序请检查近期的界面文本是否正确设置语言表 TextEx keyName is null: " + this.name); | 
|                 } | 
|             } | 
|   | 
|             Language.languageChangeEvent += OnLanguageSwitch; | 
|         } | 
|   | 
|         if (colorType != TextColType.None) | 
|         { | 
|             this.color = UIHelper.GetUIColor(colorType, bgColorType == BackGroundColorType.Bright); | 
|         } | 
|     } | 
|   | 
|     protected override void OnDestroy() | 
|     { | 
|         Language.languageChangeEvent -= OnLanguageSwitch; | 
|     } | 
|   | 
|     private void OnLanguageSwitch() | 
|     { | 
|         //重新加载字体 | 
|     } | 
|   | 
| } |