Open mikatu opened 2 years ago
The following code also fires OnComplete twice, it's also fired from OnUpdate but using Kill(true) instead....
public void dotest()
{
Sequence sequence = DOTween.Sequence();
int updatecount = 0;
int completecalls = 0;
int onkillcount = 0;
int endFrame = Time.frameCount + 1;
sequence.AppendInterval(2)
.OnUpdate(() => {
++updatecount;
Debug.Log($"called OnUpdate {updatecount}");
sequence.Kill(complete: true);
})
.OnComplete(() => {
++completecalls;
Debug.Log($"complete called {completecalls} update called {updatecount}");
})
.OnKill(() => {
onkillcount++;
Debug.Log($"called OnKill {onkillcount}");
})
.SetUpdate(UpdateType.Normal, isIndependentUpdate: true)
.SetAutoKill(true);
sequence.Play();
}
Here is some simpler code:
_sequence = DOTween.Sequence();
_sequence.AppendInterval(2f)
.OnUpdate(() => _sequence.Kill(true))
.OnComplete(() => Debug.Log($"COMPLETE {_sequence.IsActive()}"));
Output:
COMPLETE true
COMPLETE false
sequence.Kill(true)
triggers the first OnComplete
with the sequence still active. Now completed, the second OnComplete
runs naturally, but with an inactive sequence.
Hey, I use the code below to allow users skip animations.
This causes OnComplete to trigger twice in v1.2.632