// 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 onRectTransformDimensionsChange; // Callback that is sent if an associated RectTransform has it's dimensions changed void OnRectTransformDimensionsChange() { if (onRectTransformDimensionsChange != null) onRectTransformDimensionsChange.OnNext(Unit.Default); } /// Callback that is sent if an associated RectTransform has it's dimensions changed. public IObservable OnRectTransformDimensionsChangeAsObservable() { return onRectTransformDimensionsChange ?? (onRectTransformDimensionsChange = new Subject()); } Subject onRectTransformRemoved; // Callback that is sent if an associated RectTransform is removed void OnRectTransformRemoved() { if (onRectTransformRemoved != null) onRectTransformRemoved.OnNext(Unit.Default); } /// Callback that is sent if an associated RectTransform is removed. public IObservable OnRectTransformRemovedAsObservable() { return onRectTransformRemoved ?? (onRectTransformRemoved = new Subject()); } protected override void RaiseOnCompletedOnDestroy() { if (onRectTransformDimensionsChange != null) { onRectTransformDimensionsChange.OnCompleted(); } if (onRectTransformRemoved != null) { onRectTransformRemoved.OnCompleted(); } } } } #endif