LanguageMatch.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using TMPro;
  2. using UnityEngine;
  3. using UnityEngine.UI;
  4. public class LanguageMatch : MonoBehaviour
  5. {
  6. public string configName;
  7. private TextScroll txtScroll;
  8. private Text languageText;
  9. private TextMeshProUGUI languageTextMeshPro;
  10. private Image img;
  11. private void Awake()
  12. {
  13. languageText = GetComponent<Text>();
  14. languageTextMeshPro = GetComponent<TextMeshProUGUI>();
  15. img = GetComponent<Image>();
  16. txtScroll = transform.parent.GetComponent<TextScroll>();
  17. }
  18. void OnEnable()
  19. {
  20. LanguageMatchManager.Instance.AddScrLanguageMatch(this);
  21. }
  22. public async void RefreshTxt(string str)
  23. {
  24. if (img != null)
  25. {
  26. img.sprite = await YooAssetManager.Instance.LoadAsset<Sprite>(str);
  27. }
  28. else
  29. {
  30. LanguageType lt = LanguageMatchManager.Instance.GetCurLanType();
  31. if (languageText)
  32. languageText.text = str;
  33. if (languageTextMeshPro)
  34. {
  35. languageTextMeshPro.text = str;
  36. languageTextMeshPro.characterSpacing = 0;
  37. languageTextMeshPro.wordSpacing = 0;
  38. float interval = lt == LanguageType.cn ? 20 : 10;
  39. if (lt == LanguageType.cn)
  40. {
  41. languageTextMeshPro.characterSpacing = interval;
  42. }
  43. else
  44. {
  45. languageTextMeshPro.wordSpacing = interval;
  46. }
  47. }
  48. txtScroll?.CheckScroll();
  49. }
  50. }
  51. private void OnDisable()
  52. {
  53. LanguageMatchManager.Instance.RemoveScrLanguageMatch(this);
  54. }
  55. private void OnDestroy()
  56. {
  57. LanguageMatchManager.Instance.RemoveScrLanguageMatch(this);
  58. }
  59. }