OptionUtility.cs 1.1 KB

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