ManaText.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine.UI;
  5. public class LanStr
  6. {
  7. public string Id;
  8. public string Page;
  9. public LanStr(string id, string page)
  10. {
  11. Id = id;
  12. Page = page;
  13. }
  14. public override string ToString()
  15. {
  16. return Language.GetStr(Id, Page);
  17. }
  18. }
  19. public class ManaText : Regist
  20. {
  21. #region 变量
  22. public static Dictionary<Text, object[]> TextDic;
  23. #endregion
  24. public override void RegistValueA()
  25. {
  26. TextDic = new Dictionary<Text, object[]>();
  27. }
  28. public static void Add(Text text, params object[] objs)
  29. {
  30. if (TextDic.ContainsKey(text))
  31. {
  32. TextDic[text] = objs;
  33. text.text = LanguageText(objs);
  34. }
  35. else
  36. {
  37. TextDic.Add(text, objs);
  38. text.text = LanguageText(objs);
  39. }
  40. }
  41. public static void UpdateLanguage()
  42. {
  43. foreach (var kv in TextDic)
  44. {
  45. kv.Key.text = LanguageText(kv.Value);
  46. }
  47. }
  48. private static string LanguageText(object[] objs)
  49. {
  50. string str = "";
  51. for (int i = 0; i < objs.Length; i++)
  52. {
  53. LanStr lanStr = objs[i] as LanStr;
  54. if (lanStr == null)
  55. {
  56. str += objs[i];
  57. }
  58. else
  59. {
  60. str += lanStr.ToString();
  61. }
  62. }
  63. return str;
  64. }
  65. }