瀏覽代碼

Merge pull request #69588 from TokageItLab/fix-play-bw

Fix AnimationPlayer play backward doesn't process just current key & AnimationPlaybackTrack seeking for preview
Rémi Verschelde 2 年之前
父節點
當前提交
777dca33b0
共有 2 個文件被更改,包括 3 次插入3 次删除
  1. 2 2
      editor/plugins/animation_player_editor_plugin.cpp
  2. 1 1
      scene/animation/animation_player.cpp

+ 2 - 2
editor/plugins/animation_player_editor_plugin.cpp

@@ -216,8 +216,8 @@ void AnimationPlayerEditor::_play_from_pressed() {
 			player->stop(); //so it won't blend with itself
 			player->stop(); //so it won't blend with itself
 		}
 		}
 		ERR_FAIL_COND_EDMSG(!_validate_tracks(player->get_animation(current)), "Animation tracks may have any invalid key, abort playing.");
 		ERR_FAIL_COND_EDMSG(!_validate_tracks(player->get_animation(current)), "Animation tracks may have any invalid key, abort playing.");
-		player->play(current);
 		player->seek(time);
 		player->seek(time);
+		player->play(current);
 	}
 	}
 
 
 	//unstop
 	//unstop
@@ -254,8 +254,8 @@ void AnimationPlayerEditor::_play_bw_from_pressed() {
 			player->stop(); //so it won't blend with itself
 			player->stop(); //so it won't blend with itself
 		}
 		}
 		ERR_FAIL_COND_EDMSG(!_validate_tracks(player->get_animation(current)), "Animation tracks may have any invalid key, abort playing.");
 		ERR_FAIL_COND_EDMSG(!_validate_tracks(player->get_animation(current)), "Animation tracks may have any invalid key, abort playing.");
-		player->play(current, -1, -1, true);
 		player->seek(time);
 		player->seek(time);
+		player->play(current, -1, -1, true);
 	}
 	}
 
 
 	//unstop
 	//unstop

+ 1 - 1
scene/animation/animation_player.cpp

@@ -955,7 +955,7 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, double
 							break;
 							break;
 					}
 					}
 
 
-					if (player->is_playing() || p_seeked) {
+					if (player->is_playing()) {
 						player->play(anim_name);
 						player->play(anim_name);
 						player->seek(at_anim_pos);
 						player->seek(at_anim_pos);
 						nc->animation_playing = true;
 						nc->animation_playing = true;