ToggleHelper.cs 811 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. [RequireComponent(typeof(Toggle))]
  4. public class ToggleHelper:MonoBehaviour
  5. {
  6. Transform on;
  7. Transform off;
  8. Toggle toggle;
  9. private void Awake()
  10. {
  11. toggle = GetComponent<Toggle>();
  12. on = transform.Find("On");
  13. off = transform.Find("Off");
  14. }
  15. public void OnEnable()
  16. {
  17. Set(toggle.isOn);
  18. toggle.onValueChanged.AddListener(OnValueChanged);
  19. }
  20. private void OnDisable() {
  21. toggle.onValueChanged.RemoveListener(OnValueChanged);
  22. }
  23. private void OnValueChanged(bool status)
  24. {
  25. Set(toggle.isOn);
  26. }
  27. private void Set(bool status)
  28. {
  29. if (on)
  30. on.gameObject.SetActive(status);
  31. if (off)
  32. off.gameObject.SetActive(!status);
  33. }
  34. }