UniRx Versions Save

Reactive Extensions for Unity

5.3.0

8 years ago

This release is available in AssetStore on May13th 2016. https://www.assetstore.unity3d.com/jp/#!/content/17276

This release introduce MicroCoroutine, it is memory efficient and 10x faster than standard coroutine at run many coroutines. Some coroutine based operators has been changed to use MicroCoroutine.

Add : ReactiveCommand Add : MainThreadDispatcher.StartUpdateMicroCoroutine, StartFixedUpdateMicroCoroutine, StartEndOfFrameMicroCoroutine Add : Scheduler.MainThreadFixedUpdate, MainThreadEndOfFrame Add : ToYieldInstruction(cancellationToken) Add : Observer.Create(onNext/onNext, onError/onNext, onCompleted) overload Add : IReadOnlyReactiveProperty.SkipLatestValueOnSubscribe Add : Observable.WhenAll overload (IObservable<Unit>(params IObservable<Unit>[] sources), this becomes breaking changes) Add : Observable.FromMicroCoroutine Add : Observable.AsSingleUnitObservable Add : Observable.SubscribeWithState Add : Observable.CreateWithState Add : Disposable.CreateWithState Improvement : Use MicroCoroutine on ObserveEveryValueChanged, EveryUpdate, EveryFixedUpdate, EveryEndOfFrame, NextFrame, TimerFrame, IntervalFrame, DelayFrame, SampleFrame, ThrottleFrame, ThrottleFirstFrame, TimeoutFrame Improvement : Performance improvement for Observable.Range, Repeat when scheduler is Scheduler.Immediate Improvement : Use Time.unscaledDeltaTime in IgnoreTimeScaleMainThreadScheduler Fix : ReadOnlyReactiveProperty(source, initialValue) does not publish initial value on subscribe Fix : IReadOnlyCollection has set indexer Fix : Ambigious property of IReactiveCollection.Count, Indexer Fix : Throw invalid error when ObservableWWW.LoadFromCacheOrDownload failed. Breaking Changes : Added IReadOnlyReactiveProperty.HasValue Breaking Changes : AsyncConvertsion scheduler to Scheduler.MainThread on WebGL build(WebGL doesn't support ThreadPool) Other : Update UniRxAnalyzer 1.4.0.1 https://www.nuget.org/packages/UniRxAnalyzer

5.2.0

8 years ago

This release is available in AssetStore on Feb 18th 2016. https://www.assetstore.unity3d.com/jp/#!/content/17276

This release has been changed root directory under Plugins.

Add : Observable.Pairwise overload(returns Pair[T]) Add : Observable.ContinueWith Add : Observable.Share Add : Observable.ZipLatest Add : Observable.WithLatestFrom Add : Observable.TakeLast Add : Observable.GroupBy Add : IObserver.Synchronize Add : ISubject.Synchronize Add : RangeReactivePropertyAttribute Fix : Subscribe() throw exception on OnError (this is degraded from UniRx 5.0) Fix : ToAwaitableEnumerator is called callback when canceled Fix : Wait complete of WWW when called dispose before completed, it's workaround for freeze bug of Android Breaking Changes : Buffer(windowBoundaries), Buffer(timeSpan, count) should publish value when buffer is empty. Breaking Changes : UniRx has been moved under Plugins directory for avoid uNET Weaver Error Breaking Changes : Obsolete Observable.EveryAfterUpdate Breaking Changes : Obsolete MainThreadDispatchType.AfterUpdate

5.1.0

8 years ago

This release is available in AssetStore on Jan 5th 2016. https://www.assetstore.unity3d.com/jp/#!/content/17276

This release eliminates boxing for performance improvement.

Add : Observable.EveryLateUpdate Add : Observable.EveryAfterUpdate in Unity 5.3 Add : Observable.EveryGameObjectUpdate Add : Observable.ObserveOnMainThread(MainThreadDispatchType.Update/FixedUpdate/EndOfFrame/GameObjectUpdate/LateUpdate/AfterUpdate) Add : UnityEqualityComparer.Vector2/Vector3/Vector4/Color/Rect/Bounds/Quaternion and GetDefault[T] for avoid boxing Improvement : Support Unity 4.7 Improvement : ReactiveProperty.SetValue avoids boxing Improvement : UniRx.Tuple implements IEquatable[T] for avoid boxing Improvement : Observable.Distinct/DistinctUntilChanged/ObserveEveryValueChanged use UnityEqualityComparer for avoid boxing Improvement : ReactiveCollection implements IReadOnlyReactiveCollection Improvement : ReactiveDictionary implements IReadOnlyReactiveDictionary Improvement : MainThreadDispatcher doesn't use Array.Clear

5.0.0

8 years ago

This release is available in AssetStore on Dec 19th 2015. https://www.assetstore.unity3d.com/jp/#!/content/17276

This release contains biggest changes. Many codes are refactored, achieved 3x~10x performance, clean stacktrace, less gc garbage.

Breaking Changes: iOS/AOT support is dropped. Now supports only IL2CPP on iOS. Unit/Tuple/CancellationToken/TimeInterval/Timestamped changed class to struct. MainThreadDispatcher.Post needs T state. ObservableMonoBehaviour/TypedMonoBehaviour marked Obsolete. Remove AotSafe Extensions(WrapValueToClass). InputField.OnValueChangeAsObservable renamed to OnValueChangedAsObservable in Unity 5.3. Operator's chain acquired unhandled exception durability in Subscribe in Subscribe.

Add: Observable.ForEachAsync Observable.Take(duration) Observable.Aggregate Observable.Zip(T3~T7) Observable.CombineLatest(T3~T7) Observable.Start(function, timeSpan) Observable.ToYieldInstruction in Unity 5.3 Observable.DoOnError Observable.DoOnCompleted Observable.DoOnTerminate Observable.DoOnSubscribe Observable.DoOnCancel Observable.CreateSafe Progress StableCompositeDisposable MultilineReactivePropertyAttribute

Fix: Observable.First call onNext many times, thanks @TORISOUP Fix ScheduledDisposable will never call disposable's dispose, thanks @yaegaki Fix explicitly is UniRx.Diagnostics.Logger, thanks @enpel ReplaySubject does not use target scheduler.Now, thanks @CoderMin EveryEndOfFrameCore was using WaitForFixedUpdate, thanks @mavriel ObservableWWW.Post cause runtime error when externalheaders conflicts, thanks @huminado WWWErrorException.ToString can't show string when WWW was disposed AsyncSubject, ReplaySubject didn't implement IDisposable

Improvement: Made Parent available to children within PresenterBase, thanks @JimW Removed redundant onCompleted on AsyncSubject, thanks @j6lim Implement IDisposable for ReactiveDictionary, thanks @lostfictions Implement IDisposable for ReactiveCollection Cached WaitForFixedUpdate/WaitForEndOfFrame YieldInstrtuction, thanks @qiankanglai FromCoroutine in Editor Support Unity 5.3 CustomYieldInstruction Optimize yield sequnece if reportProgess == null on AsyncOperation.AsObservable and ObservableWWW Add WWWErrorException.Text property ThreadPoolScheduler and MainThreadScheduler are reduced garbage in some time-based operations(Timer/Interval/Sample/etc...) by ISchedulerPeriodic ObserveOn(MainThreadScheduler) is reduced garbage by ISchedulerQueueing

4.8.2

8 years ago

This release is available in AssetStore on Jun 29th 2015. https://www.assetstore.unity3d.com/jp/#!/content/17276

Add : PresenterBase.ForceInitialize Improvement : PresenterBase can initialize when inactive in hierarchy Improvement : Seperate event triggers into individual classes, thanks @orenro Improvement : Separate sources which depend on UnityEngine.dll to UniRx.Library, UniRx.Library.Unity with #UniRxLibrary symbol, thanks @ppcuni Fix : WWWErrorException StatusCode for iOS IL2CPP, thanks @DenizPiri Fix : ToReactiveProperty doesn't publish value when initial time and value same as defaultValue Fix : MainThreadDispatcher thread safety, thanks @pokehanai Fix : InspectorDisplayDrawer handles array in object and array of ReactiveProperty Breaking Change : Disable ObservableStateMachineBehaviour.OnStateMove, thanks @cruwel

4.8.1

8 years ago

This release is available in AssetStore on May 28th 2015.

Add : PresenterBase Add : MessageBroker Add : ThrottleFirst, ThrottleFirstFrame, thanks @torisoup Add : UIBehaviour.ObservableEventTrigger extensions Add : ReactiveCollection.ObserveCountChanged(notifyCurrentCount) Add : Append IReactiveCollection/IReactiveDictionary interfafces to ReactiveCollection/ReactiveDictionary Improvement : Make DisposableExtensions.AddTo method-chainable, thanks @shiwano Improvement : Make LifetimeDisposableExtensions.AddTo method-chainable Improvement : documentation grammer, thanks @orenro Improvement : Moved IScheduler interface to separate file, thanks @Qbit86 Improvement : ReactiveProperty.Dispose as virtual Fix : XmlDoc warning was removed Fix : MainThraedDispatcher cause "Some objects were not cleaned up when closing the scene find target" error Fix : Nested ReactiveProperty can't show on editor inspector Fix : StartWith throws OnError passing non array IEnumerable, thanks @torisoup Fix : Observable.EveryUpdate calls OnNext immediately, thanks @torisoup Fix : check cancellationToken after yield at Observable.EveryUpdate/EveryFixedUpdate/EveryEndOfFrame Fix : Windows Phone 8.1 build error, thanks @Xianor Fix : Windows Phone 8.1 runtime error, thanks @Xianor Breaking Change : initialized from source's ReactiveProperty doesn't publish value on subscribe when value didn't set Breaking Change : HttpWebRequest.GetResponseObservableAsync was renamed to GetResponseAsObservable

4.8.0

9 years ago

This release is available in AssetStore on April 11th 2015.

Add : ReactiveDictionary Add : BoolReactiveProperty Add : More Specialized ReactiveProperty(Vector2/Vector3/Vector4/Color/Rect/AnimationCurve/Bounds/Quaternion) Add : ReactiveProperty.SetValue virtual method Add : ObservableTriggers in UniRx.Triggers namespace(ObservableAnimatorTrigger, ObservableCollision2DTrigger, ObservableCollisionTrigger, ObservableDestroyTrigger, ObservableEnableTrigger, ObservableFixedUpdateTrigger, ObservableUpdateTrigger, ObservableLastUpdateTrigger, ObservableMouseTrigger, ObservableTrigger2DTrigger, ObservableTriggerTrigger, ObservableVisibleTrigger, ObservableTransformChangedTrigger, ObservableRectTransformTrigger, ObservableCanvasGroupChangedTrigger, ObservableStateMachineTrigger, ObservableEventTrigger) Add : ObservableTriggerExtensions Add : Observable.StartWith(valueFactory) Add : Observable.TakeUntilDestroy Add : Observable.TakeUntilDisable Add : Observable.RepeatSafe Add : Observable.RepeatUntil Add : Observable.RepeatUntilDestroy Add : Observable.RepeatUntilDisable Add : Observable.EveryValueChanged(frameCountType) Add : Observable.FromAsyncPattern Add : WebRequest.GetResponseAsObservable/GetRequestStreamAsObservable Add : IDisposable.AddTo(GameObject/Component) Add : Logger.Raw Improvement : ReactiveProperty.ToString Improvement : ReactiveCollectionEvent.ToString Improvement : InspectorDisplayDrawer notify property changed on Inspector Improvement : InspectorDisplayDrawer auto detect known specialized ReactiveProperty Improvement : UnityEvent.AsObservable makes AOT safe Improvement : ObserveEveryValueChanged automaticaly detect object is destroy/GC and publish OnCompleted Fix : Compiler error on target platform as Windows Universal App Fix : Observable.SampleFrame doesn't call OnCompleted Fix : Observable.ThrottleFrame leaks internal timer. Fix : Observable.Timeout sometimes doesn't trigger, thanks @zhaoyk Breaking Change : IReactiveProperty.IDisposable moved to ReactiveProeprty.IDisposable Breaking Change : UniRx.UI namespace is disappeared Breaking Change : ObservableStateMachineBehaviour renamed to ObservableStateMachineTrigger(namespace moved to UniRx.Triggers) Breaking Change : TypedMonoBehaviour/ObservableMonoBehaviour is not recommended(use UniRx.Triggers instead)

4.7.2

9 years ago

This release is available in AssetStore on March 27th 2015.

Add : ObservableLogger.DebugFormat/LogFormat/WarningFormat/ErrorFormat Fix : ReactiveProperty when value is null set value throws null reference exception Fix : ReactiveCollection can't compile when build target is Web Player, thanks @FodderMK Improvement : InspectorDisplayAttribute better handling on error Breaking Change : Remove ObservableUIComponents(ObservableButton/Image/InputField/etc...) Breaking Change : ObservableEventTriggerSlim rename to ObservableEventTrigger

4.7.1

9 years ago

This release is available in AssetStore on March 17th 2015.

Add : ReadOnlyReactiveProperty Add : ReactiveProperty.SetValueAndForceNotify Add : Observable.Pairwise Add : Observable.SelectMany(IEnumerator) Add : ObservableEventTriggerSlim Add : IEnumerable[IObservable[bool]].CombineLatestValuesAreAllTrue/CombineLatestValuesAreAllFalse Fix : Compiler error on Unity 4.6 at Examples Fix : Observable.NextFrame should complete after the frame was rendered, thanks @Useurmind Fix : Observable.TimerFrame should complete after the frame was rendered Fix : 'newValue' is not used in CollectionReplaceEvent[T], thanks @Grabacr07 Fix : When UniRx is dll or in plugin folder and use SelectMany and resultSelector returns AnonymousType, can't compile. (It's Unity's compiler bug) Breaking Change : ReactiveProperty changed to doesn't notify equality value Breaking Change : When ReactiveProperty is called Dispose, notify OnCompleted to all subscribers Breaking Change : ObservableMonoBehaviour.Awake, Start, Destroy notify OnCompleted Improvement : Add Model-View-(Reactive)Presenter Pattern section to ReadMe

4.7

9 years ago

This release is available in AssetStore on March 11th 2015.

Add : ReactiveProperty Add : ReactiveCollection Add : InspectorDisplayAttribute(for ReactiveProperty) Add : Observable.WhenAll(this IEnumerable[IObservable[T]]) Add : Observable.AsUnitObservable Add : AsyncOperation.AsAsyncOperationObservable Add : Observable.NextFrame Add : Observable.IntervalFrame Add : Observable.TimerFrame Add : Observable.SampleFrame Add : Observable.ThrottleFrame Add : Observable.TimeoutFrame Add : Observable.DelayFrameSubscription Add : Observable.DelayFrame(FrameCountType) Add : Observable.SubscribeToText(for uGUI) Add : Observable.SubscribeToInteractable(for uGUI) Add : Button.OnClickAsObservable, Toggle/Scrollbar/ScrollRect/Slider.OnValueChangedAsObservable, InputField.OnEndEditAsObservable, InputField.OnValueChangeAsObservable Add : ObservableStateMachineBehaviour Add : ObservableUIBehaviours(ObservableButton, ObservableEventTrigger, ObservableImage, ObservableInputField, ObservableSelectable, ObservableSlider, ObservableText, ObservableToggle, ObservableUIBehaviour) Add : Graphic.DirtyLayoutCallbackAsObservable, Graphic.DirtyMaterialCallbackAsObservable, Graphic.DirtyVerticesCallbackAsObservable Fix : Prevent warning when Android build, thanks @mikanbako Fix : ObservableWWW progress not reporting 1 when done, thanks @etic Fix : Some methods runs once after disposed, thanks @TigerHix Improvement : Add class constraints to ObserveEveryValueChanged Improvement : Add Examples, Sample12_ReactiveProperty and Sample13_ToDoApp Improvement : ReadMe is added UI section Breaking Change : Observable.WhenAll if sequence is empty, return empty array