ServerRegionPanel.cs 1.6 KB

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