using UnityEngine; using UnityEngine.UI; using System.Collections; using System.Runtime.InteropServices; using System; using GCGame.Table; using GCGame; public class FontChangeText : Text { private const int LOCALE_SYSTEM_DEFAULT = 0x0800; private const int LCMAP_SIMPLIFIED_CHINESE = 0x02000000; private const int LCMAP_TRADITIONAL_CHINESE = 0x04000000; [DllImport("kernel32", CharSet = CharSet.Auto, SetLastError = true)] private static extern int LCMapString(int Locale, int dwMapFlags, string lpSrcStr, int cchSrc, [Out] string lpDestStr, int cchDest); /// /// 将字符转换成简体中文 /// /// 输入要转换的字符串 /// 转换完成后的字符串 public static string ToSimplified(string source) { String target = new String(' ', source.Length); int ret = LCMapString(LOCALE_SYSTEM_DEFAULT, LCMAP_SIMPLIFIED_CHINESE, source, source.Length, target, source.Length); return target; } /// /// 讲字符转换为繁体中文 /// /// 输入要转换的字符串 /// 转换完成后的字符串 public static string ToTraditional(string source) { String target = new String(' ', source.Length); int ret = LCMapString(LOCALE_SYSTEM_DEFAULT, LCMAP_TRADITIONAL_CHINESE, source, source.Length, target, source.Length); return target; } //public void Start() //{ // text = text; //} public bool useDicTable = false; public int curDicID = -1; public override string text { get { return base.text; } set { if (useDicTable) { int id = 0; if (int.TryParse(value, out id)) { curDicID = id; value = Utils.GetDicByID(id); } } if (string.IsNullOrEmpty(value)) { if (!string.IsNullOrEmpty(base.text)) base.text = ""; } else if (base.text != value) { base.text = value; #if DYNAMIC_FONT if (mFont != null) mFont.Request(value); #endif } } } }