ServerRegionPanel.cs 1.7 KB

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