LanguagePanel.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. using UnityEngine.Events;
  6. public class LanguagePanel : OffAnimation
  7. {
  8. private static readonly int CloseHash = Animator.StringToHash("Close");
  9. private static readonly int OpenHash = Animator.StringToHash("Open");
  10. [SerializeField] Animator _anim;
  11. [SerializeField] List<LanguageToggle> _languageToggles = new();
  12. public void Close()
  13. {
  14. Close_(true);
  15. }
  16. public void Close_(bool playSE)
  17. {
  18. if (playSE)
  19. {
  20. if (Opening.instance != null)
  21. {
  22. Opening.instance.PlayCancelSE();
  23. }
  24. else if (GManager.instance != null)
  25. {
  26. GManager.instance.PlayCancelSE();
  27. }
  28. }
  29. _anim.SafeSetInt(OpenHash, 0);
  30. _anim.SafeSetInt(CloseHash, 1);
  31. }
  32. public void Init()
  33. {
  34. Off();
  35. }
  36. public void Open()
  37. {
  38. if (ContinuousController.instance != null)
  39. {
  40. foreach (LanguageToggle languageToggle in _languageToggles)
  41. {
  42. static void OnToggleChange(Language language)
  43. {
  44. ContinuousController.instance.language = language;
  45. ContinuousController.instance.SaveLanguage();
  46. }
  47. languageToggle.OnClickAction = OnToggleChange;
  48. languageToggle.Toggle.isOn = languageToggle.Language == ContinuousController.instance.language;
  49. }
  50. }
  51. gameObject.SetActive(true);
  52. _anim.SafeSetInt(OpenHash, 1);
  53. _anim.SafeSetInt(CloseHash, 0);
  54. }
  55. }