12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- // after uGUI(from 4.6)
- #if !(UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_4 || UNITY_4_5)
- using System;
- using UnityEngine;
- namespace UniRx.Triggers
- {
- [DisallowMultipleComponent]
- public class ObservableRectTransformTrigger : ObservableTriggerBase
- {
- Subject<Unit> onRectTransformDimensionsChange;
- // Callback that is sent if an associated RectTransform has it's dimensions changed
- void OnRectTransformDimensionsChange()
- {
- if (onRectTransformDimensionsChange != null) onRectTransformDimensionsChange.OnNext(Unit.Default);
- }
- /// <summary>Callback that is sent if an associated RectTransform has it's dimensions changed.</summary>
- public IObservable<Unit> OnRectTransformDimensionsChangeAsObservable()
- {
- return onRectTransformDimensionsChange ?? (onRectTransformDimensionsChange = new Subject<Unit>());
- }
- Subject<Unit> onRectTransformRemoved;
- // Callback that is sent if an associated RectTransform is removed
- void OnRectTransformRemoved()
- {
- if (onRectTransformRemoved != null) onRectTransformRemoved.OnNext(Unit.Default);
- }
- /// <summary>Callback that is sent if an associated RectTransform is removed.</summary>
- public IObservable<Unit> OnRectTransformRemovedAsObservable()
- {
- return onRectTransformRemoved ?? (onRectTransformRemoved = new Subject<Unit>());
- }
- protected override void RaiseOnCompletedOnDestroy()
- {
- if (onRectTransformDimensionsChange != null)
- {
- onRectTransformDimensionsChange.OnCompleted();
- }
- if (onRectTransformRemoved != null)
- {
- onRectTransformRemoved.OnCompleted();
- }
- }
- }
- }
- #endif
|