using UnityEngine.UI;
|
using System.Text;
|
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()
|
{
|
//重新加载字体
|
}
|
|
}
|