Skip to content

Releases: Cysharp/UniTask

Ver 2.0.5-rc2

18 May 02:38
Compare
Choose a tag to compare
Ver 2.0.5-rc2 Pre-release
Pre-release

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 to System.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 implements IAsyncReactiveProperty
  • Fix IUniTaskAsyncEnumerable.Timer is not over

Breaking Changes

  • AsyncReactiveProperty produce current value at first

Ver 2.0.4-rc1

16 May 16:42
Compare
Choose a tag to compare
Ver 2.0.4-rc1 Pre-release
Pre-release

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

12 May 11:30
Compare
Choose a tag to compare
Ver 2.0.3-preview4 Pre-release
Pre-release

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 and Edtiro 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) implements IUniTaskAsyncEnumerable<T>, all triggers can query LINQ.

image

Ver 2.0.2-preview3

07 May 02:33
Compare
Choose a tag to compare
Ver 2.0.2-preview3 Pre-release
Pre-release

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

06 May 22:32
Compare
Choose a tag to compare
Ver 2.0.1-preview2 Pre-release
Pre-release

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

05 May 18:22
Compare
Choose a tag to compare
Ver 2.0.0-preview1 Pre-release
Pre-release

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 returns AsyncLazy<T>
  • DelayFrame return type is changed from UniTask<int> to UniTask
  • Add UniTask.Create
  • UniTask accepts new IUniTaskSource instead of IAwaiter
  • 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 to LogType.Exception
  • JobHandle await extension does not accept CancellationToken
  • Add JobHandle.WaitAsync
  • Add new last PlayerLoopTimings (PlayerLoopTiming.LastPostLateUpdate is same as WaitForEndOfFrame)
  • All Trigger method combinates GetAsync***Trigger and Get***AsyncHandler and ***Async.
  • Improved UniTaskTracker Window, enable a jump to the source file
  • Support addressable await(AsyncOperationHandle and AsyncOpereationHandle<T>)

Reports are welcome, please comment on the this issue below.
#61

Ver 1.3.1

26 Apr 12:52
Compare
Choose a tag to compare

Fix when attaching debugger and step-over(F10) in await, crashes the Unity Editor, thanks @UnityAlex
Fix timeoutTask continues to remain. #65, thanks @vc-kusuha

Ver 1.3.0

16 Apr 12:08
Compare
Choose a tag to compare

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

20 Sep 12:17
50ba93f
Compare
Choose a tag to compare

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

28 Jun 12:04
Compare
Choose a tag to compare

Fix: Fixed nested IEnumerator does not consumed #23, thanks @TamuraKazunori
Improvement: Prevent UnitTasks from continuing after exiting play mode #22, thanks @joelmalone