Releases: neuecc/UniRx
ver 5.3.0
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(params IObservable[] 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
ver 5.2.0
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
ver 5.1.0
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
ver 5.0.0
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(T3T7)T7)
Observable.CombineLatest(T3
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
ver 4.8.2
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
ver 4.8.1
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
ver 4.8.0
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)
ver 4.7.2
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
ver 4.7.1
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
ver 4.7
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