ExtensionButton.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. using UnityEngine.Events;
  4. using System.Collections;
  5. public static class ExtensionButton
  6. {
  7. public static void SetButtonEvent(this Button button, UnityAction onClick)
  8. {
  9. button.onClick = new Button.ButtonClickedEvent();
  10. button.onClick.AddListener(onClick);
  11. }
  12. public static void AddButtonEvent(this Button button, UnityAction onClick)
  13. {
  14. button.onClick.AddListener(onClick);
  15. }
  16. public static void PushButtonEvent(this Button button, UnityAction onClick)
  17. {
  18. Button.ButtonClickedEvent click = button.onClick;
  19. button.onClick = new Button.ButtonClickedEvent();
  20. button.onClick.AddListener(onClick);
  21. button.onClick.AddListener(click.Invoke);
  22. }
  23. public static void AddButtonEventOnetime(this Button button, UnityAction onClick)
  24. {
  25. onClick += () =>
  26. {
  27. button.onClick.RemoveListener(onClick);
  28. };
  29. button.onClick.AddListener(onClick);
  30. }
  31. public static void PushButtonEventOnetime(this Button button, UnityAction onClick)
  32. {
  33. onClick += () =>
  34. {
  35. button.onClick.RemoveListener(onClick);
  36. };
  37. Button.ButtonClickedEvent click = button.onClick;
  38. button.onClick = new Button.ButtonClickedEvent();
  39. button.onClick.AddListener(onClick);
  40. button.onClick.AddListener(click.Invoke);
  41. }
  42. }