IUnSubscribeExtension.cs 929 B

1234567891011121314151617181920212223242526
  1. using UnityEngine;
  2. namespace Blue
  3. {
  4. public static class IUnSubscribeExtension
  5. {
  6. public static void UnSubScribeWhenGameObjectDestroyed(this IUnSubscribe unSubscribe,GameObject gameObject)
  7. {
  8. var trigger= gameObject.GetComponent<UnSubscribeOnDestroyTrigger>();
  9. if (!trigger)
  10. {
  11. trigger = gameObject.AddComponent<UnSubscribeOnDestroyTrigger>();
  12. }
  13. trigger.AddUnSubscribe(unSubscribe);
  14. }
  15. public static void UnSubScribeWhenGameObjectDisabled(this IUnSubscribe unSubscribe, GameObject gameObject)
  16. {
  17. var trigger = gameObject.GetComponent<UnSubscribeOnDisableTrigger>();
  18. if (!trigger)
  19. {
  20. trigger = gameObject.AddComponent<UnSubscribeOnDisableTrigger>();
  21. }
  22. trigger.AddUnSubscribe(unSubscribe);
  23. }
  24. }
  25. }