From 03ef341096cdac3cede305b2711b2586e856b9e8 Mon Sep 17 00:00:00 2001 From: Artem Ovchinnikov Date: Sun, 8 Jan 2023 11:40:11 +0300 Subject: [PATCH] Fixed bug with OnKill delegate overriding --- .../External/DOTween/DOTweenAsyncExtensions.cs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/UniTask/Assets/Plugins/UniTask/Runtime/External/DOTween/DOTweenAsyncExtensions.cs b/src/UniTask/Assets/Plugins/UniTask/Runtime/External/DOTween/DOTweenAsyncExtensions.cs index 9cbe2ed..72fcc05 100644 --- a/src/UniTask/Assets/Plugins/UniTask/Runtime/External/DOTween/DOTweenAsyncExtensions.cs +++ b/src/UniTask/Assets/Plugins/UniTask/Runtime/External/DOTween/DOTweenAsyncExtensions.cs @@ -105,17 +105,15 @@ namespace Cysharp.Threading.Tasks if (!tween.IsActive()) return UniTask.CompletedTask; - var registration = cancellationToken.Register(() => - { - if (tween.IsActive()) - { - tween.Kill(); - } - }); + using var registration = cancellationToken.Register(() => + { + if (tween.IsActive()) + { + tween.Kill(); + } + }); - tween.OnKill((() => registration.Dispose())); - - return tween.ToUniTask(TweenCancelBehaviour.KillAndCancelAwait, cancellationToken); + return tween.ToUniTask(TweenCancelBehaviour.KillAndCancelAwait, cancellationToken); } public struct TweenAwaiter : ICriticalNotifyCompletion