You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
seek() is supposed to skip the keys inbetween current Timestamp and it's argument value Timestamp.
When playing an Animation in the AnimationPlayer which has a Call Method track key somewhere in the middle section for example, and then the user tries to "skip" that middle section using seek(), the Call Method track keys in the middle section are still handled, even though animation has skipped the middle section and the update argument is false.
So it basically behaves like advance() should behave.
However, advance also does not behave as it should, since it advances further than it should and when setting Update in the seek() method to true, the Call Method track key is actually called twice!
Steps to reproduce
Create an AnimationPlayer Animation of 5 seconds,
Add a script with two functions: One to seek(4.0) and another one to print("hi")
Add a Call Method Track and at Timestamp second 1.0 add a key to the seek() method and on Timestamp 2.5 add a key to print().
Play the scene and observe "hi" being printed
Set seek(4.0, true) to enable Update (like in advance method), and observe "hi" being printed twice!
Maybe related: #76773
Godot version
4.1.1 stable 4.2. dev3
System information
Win 10
Issue description
seek() is supposed to skip the keys inbetween current Timestamp and it's argument value Timestamp.
When playing an Animation in the AnimationPlayer which has a Call Method track key somewhere in the middle section for example, and then the user tries to "skip" that middle section using
seek()
, the Call Method track keys in the middle section are still handled, even though animation has skipped the middle section and theupdate
argument isfalse
.So it basically behaves like advance() should behave.
However, advance also does not behave as it should, since it advances further than it should and when setting Update in the seek() method to
true
, the Call Method track key is actually called twice!Steps to reproduce
Create an AnimationPlayer Animation of 5 seconds,
Add a script with two functions: One to seek(4.0) and another one to print("hi")
Add a Call Method Track and at Timestamp second 1.0 add a key to the seek() method and on Timestamp 2.5 add a key to print().
Play the scene and observe "hi" being printed
Set seek(4.0, true) to enable Update (like in advance method), and observe "hi" being printed twice!
Maybe related: #76773
Minimal reproduction project
4.2. dev3 (issue is the same in 4.1.1 stable)
animation_seek_bug.zip
The text was updated successfully, but these errors were encountered: