BoxLanguage.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. public class BoxLanguage : MonoBehaviour
  6. {
  7. [SerializeField] Sprite spriteItemOn;
  8. [SerializeField] Sprite spriteItemOff;
  9. [SerializeField] Transform layoutContent;
  10. readonly static LanguageEnum[] Languages = { LanguageEnum.Chinese, LanguageEnum.English };
  11. void OnEnable()
  12. {
  13. RenderLanguageSelect();
  14. }
  15. public void OnClick_LanguageItem(Transform target)
  16. {
  17. LanguageEnum languageEnum = Languages[target.GetSiblingIndex()];
  18. if (languageEnum != TextAutoLanguage2.GetLanguage()) AudioMgr.ins.PlayBtn();
  19. TextAutoLanguage.ChangeLanguage(languageEnum);
  20. TextAutoLanguage2.ChangeLanguage(languageEnum);
  21. ImageAutoLanguage.ChangeLanguage(languageEnum);
  22. RenderLanguageSelect();
  23. }
  24. void RenderLanguageSelect()
  25. {
  26. int languageIndex = System.Array.IndexOf(Languages, TextAutoLanguage2.GetLanguage());
  27. for (int i = 0; i < layoutContent.childCount; i++)
  28. {
  29. var item = layoutContent.GetChild(i);
  30. if (i == languageIndex)
  31. {
  32. item.GetComponent<Image>().sprite = spriteItemOn;
  33. item.Find("IconCheck").gameObject.SetActive(true);
  34. item.Find("TextB").gameObject.SetActive(true);
  35. }
  36. else
  37. {
  38. item.GetComponent<Image>().sprite = spriteItemOff;
  39. item.Find("IconCheck").gameObject.SetActive(false);
  40. item.Find("TextB").gameObject.SetActive(false);
  41. }
  42. }
  43. }
  44. }