OptionUtility.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using UnityEngine.UI;
  2. using UnityEngine.Events;
  3. public static class OptionUtility
  4. {
  5. public static void InitToggle(Toggle toggle, UnityAction<bool> onToggleChanged, bool value)
  6. {
  7. if (toggle == null) return;
  8. toggle.onValueChanged.RemoveAllListeners();
  9. toggle.isOn = value;
  10. toggle.onValueChanged.AddListener(onToggleChanged);
  11. }
  12. public static void OnToggleChanged(bool value, Toggle toggle, UnityAction<bool> onToggleChanged, ref bool settingRef, UnityAction saveAction)
  13. {
  14. if (toggle == null) return;
  15. if (!toggle.interactable) return;
  16. if (saveAction == null) return;
  17. toggle.onValueChanged.RemoveAllListeners();
  18. toggle.isOn = value;
  19. toggle.onValueChanged.AddListener(onToggleChanged);
  20. settingRef = toggle.isOn;
  21. saveAction?.Invoke();
  22. if (GManager.instance != null)
  23. {
  24. GManager.instance.PlayDecisionSE();
  25. }
  26. else if (Opening.instance != null)
  27. {
  28. Opening.instance.PlayDecisionSE();
  29. }
  30. }
  31. }