12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- using System; // require keep for Windows Universal App
- using UnityEngine;
- namespace UniRx.Triggers
- {
- [DisallowMultipleComponent]
- public class ObservableEnableTrigger : ObservableTriggerBase
- {
- Subject<Unit> onEnable;
- /// <summary>This function is called when the object becomes enabled and active.</summary>
- void OnEnable()
- {
- if (onEnable != null) onEnable.OnNext(Unit.Default);
- }
- /// <summary>This function is called when the object becomes enabled and active.</summary>
- public IObservable<Unit> OnEnableAsObservable()
- {
- return onEnable ?? (onEnable = new Subject<Unit>());
- }
- Subject<Unit> onDisable;
- /// <summary>This function is called when the behaviour becomes disabled () or inactive.</summary>
- void OnDisable()
- {
- if (onDisable != null) onDisable.OnNext(Unit.Default);
- }
- /// <summary>This function is called when the behaviour becomes disabled () or inactive.</summary>
- public IObservable<Unit> OnDisableAsObservable()
- {
- return onDisable ?? (onDisable = new Subject<Unit>());
- }
- protected override void RaiseOnCompletedOnDestroy()
- {
- if (onEnable != null)
- {
- onEnable.OnCompleted();
- }
- if (onDisable != null)
- {
- onDisable.OnCompleted();
- }
- }
- }
- }
|