diff --git a/doc/classes/Tween.xml b/doc/classes/Tween.xml index cb255170f3e..6f7ac87a990 100644 --- a/doc/classes/Tween.xml +++ b/doc/classes/Tween.xml @@ -206,6 +206,7 @@ Pauses the tweening. The animation can be resumed by using [method play]. + [b]Note:[/b] If a Tween is paused and not bound to any node, it will exist indefinitely until manually started or invalidated. If you lose a reference to such Tween, you can retrieve it using [method SceneTree.get_processed_tweens]. @@ -273,6 +274,7 @@ Stops the tweening and resets the [Tween] to its initial state. This will not remove any appended [Tweener]s. + [b]Note:[/b] If a Tween is stopped and not bound to any node, it will exist indefinitely until manually started or invalidated. If you lose a reference to such Tween, you can retrieve it using [method SceneTree.get_processed_tweens]. diff --git a/scene/animation/tween.cpp b/scene/animation/tween.cpp index 96e5da5a400..b32b04655d2 100644 --- a/scene/animation/tween.cpp +++ b/scene/animation/tween.cpp @@ -284,10 +284,6 @@ bool Tween::step(double p_delta) { return false; } - if (!running) { - return true; - } - if (is_bound) { Node *node = get_bound_node(); if (node) { @@ -299,6 +295,10 @@ bool Tween::step(double p_delta) { } } + if (!running) { + return true; + } + if (!started) { if (tweeners.is_empty()) { String tween_id;