Fixed bug with OnKill delegate overriding

pull/434/head
Artem Ovchinnikov 2023-01-08 11:40:11 +03:00
parent 5e266f5538
commit 03ef341096
1 changed files with 8 additions and 10 deletions

View File

@ -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