Releases: Cysharp/UniTask
Ver 2.0.5-rc2
This version is preview, if you want to use stable version, check 1.3.1.
2.0.x has many breaking changes, see 2.0.0-preview1 release notes.
Improvement
- Add
Channel.CreateSingleConsumerUnbounded
, that is equivalent toSystem.Threading.Channels
, similar as go channel - Add
IUniTaskAsyncEnumerable.Queue
- Add
AsyncReactiveProperty.WithoutCurrent
- Add
BindTo<TSource, TObject>(Action<TObject, TSource> bindAction)
- Fix
IUniTaskAsyncEnumerable.Take
, requires one more value when terminate - Fix
AsyncReactiveProperty
does not implementsIAsyncReactiveProperty
- Fix
IUniTaskAsyncEnumerable.Timer
is not over
Breaking Changes
AsyncReactiveProperty
produce current value at first
Ver 2.0.4-rc1
This version is preview, if you want to use stable version, check 1.3.1.
2.0.x has many breaking changes, see 2.0.0-preview1 release notes.
Improvement
- Add AsyncReactiveProperty
- Add IUniTaskAsyncEnumerable.BindTo(Text/Selectable/TMP_Text) extension methods
- Reduced AsyncTrigger allocation
- Stacktrace in PlayerLoop shows current PlayerLoopTiming
- More human-readable stacktrace for UniTask.Linq
Ver 2.0.3-preview4
This version is preview, if you want to use stable version, check 1.3.1.
2.0.x has many breaking changes, see 2.0.0-preview1 release notes.
Changed
- Modified directory structure, under
Runtime
andEdtiro
directory to follow standard UPM design
UniTask.Linq
preview4 new feature, Cysharp.Threading.Tasks.Linq
, it includes asynchronous LINQ(push-based Rx vs pull-based async linq).
UniTaskAsyncEnumerable
, standard factory and all linq operators.- Unity specified factory generator
EveryUpdate
,Timer
,TimerFrame
,Interval
,IntervalFrame
. - uGUI component has
***AsAsyncEnumerable
that converts event to async stream. - All async triggers(
Cysharp.Threading.Tasks.Triggers
) implementsIUniTaskAsyncEnumerable<T>
, all triggers can query LINQ.
Ver 2.0.2-preview3
This version is preview, if you want to use stable version, check 1.3.1.
2.0.x has many breaking changes, see 2.0.0-preview1 release notes.
- Fix bug of WhenAll(array), WhenAny(array) - zero length array does not continue next
- Improve performance of WhenAll(array), WhenAny(array)
Ver 2.0.1-preview2
This version is preview, if you want to use stable version, check 1.3.1.
2.0.x has many breaking changes, see 2.0.0-preview1 release notes.
- Improve AsyncTrigger performance
- Brings back
UniTask<T>
->UniTask
implicit conversion
Ver 2.0.0-preview1
This version is preview, if you want to use stable version, check 1.3.1.
This release will improve performance, especially memory allocation.
The automatic reuse mechanism has achieved zero allocation in most use cases.
However, it has many breaking changes.
- Namespace change:
UniRx.Async
->Cysharp.Threading.Tasks
- All
UniTask
/UniTask<T>
can not await twice(will throw exception), Reusable Promise is discontinuance - All UniTask Factory method(such as
UniTask.Delay
) run immediately(same as standard Task, previously it does not run before call await) - Add
UniTask.Preserve
, it converts to allow multiple await - Almost UniTask methods and AsyncMethodBuilder's runner automatically reuse(zero allocation)
UniTask.Lazy
returnsAsyncLazy<T>
- DelayFrame return type is changed from
UniTask<int>
toUniTask
- Add
UniTask.Create
- UniTask accepts new
IUniTaskSource
instead ofIAwaiter
- Add
UniTask.VoidAction
,UniTask.VoidUnityAction
- WhenAny return type is changed to
(int winArgumentIndex, T1 result1, T2 result2, ...)
UniTaskCompletionSource
can reuse by.Reset()
- Add
AutoResetUniTaskCompletionSource
UniTaskScheduler.UnobservedExceptionWriteLogType
's default is changed toLogType.Exception
- JobHandle await extension does not accept
CancellationToken
- Add
JobHandle.WaitAsync
- Add new last PlayerLoopTimings (
PlayerLoopTiming.LastPostLateUpdate
is same asWaitForEndOfFrame
) - All Trigger method combinates
GetAsync***Trigger
andGet***AsyncHandler
and***Async
. - Improved UniTaskTracker Window, enable a jump to the source file
- Support addressable await(
AsyncOperationHandle
andAsyncOpereationHandle<T>
)
Reports are welcome, please comment on the this issue below.
#61
Ver 1.3.1
Ver 1.3.0
Improvement
Support Editor runner, thanks @BattlefieldNoob #37
Support await to AssetBundleCreateRequest, thanks @NewbieGameCoder #46
Support disable domain unload, thanks @elringus #52
Add UPM support, see ReadMe #upm-package seciton.
Braking Changes
Tracker window menu from Window -> UniRx -> UniTask Tracker
to Window -> UniTask Tracker
GetCancellationTokenOnDestroy
move from UniRx.AsyncTriggers
to UniRx.Async
Fix typo, AddCancellationTriggerOnDestory
-> AddCancellationTriggerOnDestroy
, thanks @vc-kusuha #44
Ver 1.2.0
Fix OnCompleted won't be called on UniTask.ToObservable() when UniTask.IsCompleted == true #30, thanks @jimmylovesiren
Add ToUniTask for AssetBundleRequest. #24, thanks @yKimisaki
Ver 1.1.0
Fix: Fixed nested IEnumerator does not consumed #23, thanks @TamuraKazunori
Improvement: Prevent UnitTasks from continuing after exiting play mode #22, thanks @joelmalone