您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

56 行
1.2 KiB

  1. using System;
  2. using CIG.Translation;
  3. using SUISS.Core;
  4. using UnityEngine;
  5. using UnityEngine.UI;
  6. public class FlagButton : MonoBehaviour
  7. {
  8. public Localization.Culture RepresentingCulture { get; private set; }
  9. public Button Button
  10. {
  11. get
  12. {
  13. return this._button;
  14. }
  15. }
  16. protected void OnEnable()
  17. {
  18. Localization.CurrentCultureChangedEvent += this.OnCurrentCultureChangedEvent;
  19. this.OnCurrentCultureChangedEvent(Localization.CurrentCulture);
  20. }
  21. protected void OnDisable()
  22. {
  23. Localization.CurrentCultureChangedEvent -= this.OnCurrentCultureChangedEvent;
  24. }
  25. protected void OnDestroy()
  26. {
  27. this._button.onClick.RemoveAllListeners();
  28. this.RepresentingCulture = null;
  29. }
  30. public void SetCulture(Localization.Culture culture)
  31. {
  32. this.RepresentingCulture = culture;
  33. this._flagImage.sprite = SingletonMonobehaviour<FlagAssetCollection>.Instance.GetAsset(culture);
  34. }
  35. private void OnCurrentCultureChangedEvent(Localization.Culture culture)
  36. {
  37. this._glowObject.SetActive(culture == this.RepresentingCulture);
  38. }
  39. [SerializeField]
  40. private Button _button;
  41. [SerializeField]
  42. private GameObject _glowObject;
  43. [SerializeField]
  44. private Image _flagImage;
  45. }