// 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 { private Subject onRectTransformDimensionsChange; private Subject onRectTransformRemoved; // Callback that is sent if an associated RectTransform has it's dimensions changed private 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()); } // Callback that is sent if an associated RectTransform is removed private 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