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() 
 | 
    { 
 | 
        //重新加载字体 
 | 
    } 
 | 
  
 | 
} 
 |