mirror of
https://github.com/Cardidi/dotween-upm-fork.git
synced 2025-12-20 09:16:02 +08:00
[BUGFIX] Fixed OnComplete being called twice if tween.Complete was fired inside an OnUpdate call
This commit is contained in:
parent
0ea3c4bf19
commit
c21989e786
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -17,7 +17,11 @@ public class TempTests : BrainBase
|
||||
{
|
||||
yield return new WaitForSeconds(0.8f);
|
||||
|
||||
Tween t = target.DOShakeRotation(5f, new Vector3(0f, 20f, 20f), 4, 10f, true);
|
||||
// Tween t = target.DOPunchRotation(new Vector3(0f, 0f, 20f), 5, 10);
|
||||
Tween t = target.DOMoveX(2, 2);
|
||||
// t.OnUpdate(t.Complete);
|
||||
t.OnComplete(()=> Debug.Log("COMPLETE"));
|
||||
yield return new WaitForSeconds(0.4f);
|
||||
|
||||
t.Complete();
|
||||
}
|
||||
}
|
||||
@ -10,6 +10,9 @@ namespace DG.Tweening.Core.Enums
|
||||
{
|
||||
Update,
|
||||
Goto, // Treats update as a full goto, thus not calling eventual onStepComplete callbacks
|
||||
IgnoreOnUpdate // Ignores OnUpdate callback (used when applying some ChangeValue during an OnUpdate call)
|
||||
IgnoreOnUpdate, // Ignores OnUpdate callback (used when applying some ChangeValue during an OnUpdate call)
|
||||
// Set by tween.Complete extension, if OnComplete is fired manually during an updateLoop,
|
||||
// so it will not be fired twice (since it will already be fired by the Update loop)
|
||||
IgnoreOnComplete
|
||||
}
|
||||
}
|
||||
@ -32,7 +32,7 @@ namespace DG.Tweening
|
||||
public class DOTween
|
||||
{
|
||||
/// <summary>DOTween's version</summary>
|
||||
public static readonly string Version = "1.1.680";
|
||||
public static readonly string Version = "1.1.685";
|
||||
|
||||
///////////////////////////////////////////////
|
||||
// Options ////////////////////////////////////
|
||||
|
||||
@ -254,7 +254,7 @@ namespace DG.Tweening
|
||||
if (newCompletedSteps > 0 && updateMode == UpdateMode.Update && t.onStepComplete != null) {
|
||||
for (int i = 0; i < newCompletedSteps; ++i) OnTweenCallback(t.onStepComplete);
|
||||
}
|
||||
if (t.isComplete && !wasComplete && t.onComplete != null) {
|
||||
if (t.isComplete && !wasComplete && updateMode != UpdateMode.IgnoreOnComplete && t.onComplete != null) {
|
||||
OnTweenCallback(t.onComplete);
|
||||
}
|
||||
if (!t.isPlaying && wasPlaying && (!t.isComplete || !t.autoKill) && t.onPause != null) {
|
||||
|
||||
@ -55,7 +55,10 @@ namespace DG.Tweening
|
||||
if (Debugger.logPriority > 1) Debugger.LogNestedTween(t); return;
|
||||
}
|
||||
|
||||
TweenManager.Complete(t, true, withCallbacks ? UpdateMode.Update : UpdateMode.Goto);
|
||||
// TweenManager.Complete(t, true, withCallbacks ? UpdateMode.Update : UpdateMode.Goto);
|
||||
UpdateMode updateMode = TweenManager.isUpdateLoop ? UpdateMode.IgnoreOnComplete
|
||||
: withCallbacks ? UpdateMode.Update : UpdateMode.Goto;
|
||||
TweenManager.Complete(t, true, updateMode);
|
||||
}
|
||||
|
||||
/// <summary>Flips the direction of this tween (backwards if it was going forward or viceversa)</summary>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user