浏览代码

Merge pull request #42703 from RandomShaper/fix_anim_backwards

Fix premature end of animation playing backwards
Rémi Verschelde 4 年之前
父节点
当前提交
223e361c4e
共有 1 个文件被更改,包括 2 次插入4 次删除
  1. 2 4
      scene/animation/animation_player.cpp

+ 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;