12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- using System; // require keep for Windows Universal App
- using UnityEngine;
- namespace UniRx.Triggers
- {
- [DisallowMultipleComponent]
- public class ObservableVisibleTrigger : ObservableTriggerBase
- {
- Subject<Unit> onBecameInvisible;
- /// <summary>OnBecameInvisible is called when the renderer is no longer visible by any camera.</summary>
- void OnBecameInvisible()
- {
- if (onBecameInvisible != null) onBecameInvisible.OnNext(Unit.Default);
- }
- /// <summary>OnBecameInvisible is called when the renderer is no longer visible by any camera.</summary>
- public IObservable<Unit> OnBecameInvisibleAsObservable()
- {
- return onBecameInvisible ?? (onBecameInvisible = new Subject<Unit>());
- }
- Subject<Unit> onBecameVisible;
- /// <summary>OnBecameVisible is called when the renderer became visible by any camera.</summary>
- void OnBecameVisible()
- {
- if (onBecameVisible != null) onBecameVisible.OnNext(Unit.Default);
- }
- /// <summary>OnBecameVisible is called when the renderer became visible by any camera.</summary>
- public IObservable<Unit> OnBecameVisibleAsObservable()
- {
- return onBecameVisible ?? (onBecameVisible = new Subject<Unit>());
- }
- protected override void RaiseOnCompletedOnDestroy()
- {
- if (onBecameInvisible != null)
- {
- onBecameInvisible.OnCompleted();
- }
- if (onBecameVisible != null)
- {
- onBecameVisible.OnCompleted();
- }
- }
- }
- }
|