2
0
Эх сурвалжийг харах

Merge pull request #42703 from RandomShaper/fix_anim_backwards

Fix premature end of animation playing backwards
Rémi Verschelde 4 жил өмнө
parent
commit
223e361c4e

+ 2 - 4
scene/animation/animation_player.cpp

@@ -762,12 +762,10 @@ void AnimationPlayer::_animation_process_data(PlaybackData &cd, float p_delta, f
 			next_pos = len;
 		}
 
-		// fix delta
-		delta = next_pos - cd.pos;
+		bool backwards = signbit(delta); // Negative zero means playing backwards too
+		delta = next_pos - cd.pos; // Fix delta (after determination of backwards because negative zero is lost here)
 
 		if (&cd == &playback.current) {
-			bool backwards = delta < 0;
-
 			if (!backwards && cd.pos <= len && next_pos == len /*&& playback.blend.empty()*/) {
 				//playback finished
 				end_reached = true;