ExtensionUnityAction.cs 929 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using UnityEngine;
  2. using UnityEngine.Events;
  3. using System.Collections;
  4. public static class ExtensionUnityAction
  5. {
  6. public static void SafeInvoke(this UnityAction action)
  7. {
  8. if (action != null)
  9. {
  10. action.Invoke();
  11. }
  12. }
  13. public static void SafeInvoke<T>(this UnityAction<T> action, T t)
  14. {
  15. if (action != null)
  16. {
  17. action.Invoke(t);
  18. }
  19. }
  20. public static UnityAction PushEvent(this UnityAction unityAction, UnityAction action)
  21. {
  22. return action + unityAction;
  23. }
  24. public static UnityAction AddEventOnetime(this UnityAction unityAction, UnityAction action)
  25. {
  26. action += () =>
  27. {
  28. unityAction -= action;
  29. };
  30. return unityAction += action;
  31. }
  32. public static UnityAction PushEventOnetime(this UnityAction unityAction, UnityAction action)
  33. {
  34. return null;
  35. }
  36. }