瀏覽代碼

Merge pull request #93785 from TokageItLab/fix-bezier-init

Fix Bezier track init value on caching without RESET animation
Rémi Verschelde 1 年之前
父節點
當前提交
a05237f5d0
共有 1 個文件被更改,包括 4 次插入2 次删除
  1. 4 2
      scene/animation/animation_mixer.cpp

+ 4 - 2
scene/animation/animation_mixer.cpp

@@ -691,7 +691,9 @@ bool AnimationMixer::_update_caches() {
 
 						track = track_value;
 
-						track_value->init_value = anim->track_get_key_value(i, 0);
+						bool is_value = track_src_type == Animation::TYPE_VALUE;
+
+						track_value->init_value = is_value ? anim->track_get_key_value(i, 0) : (anim->track_get_key_value(i, 0).operator Array())[0];
 						track_value->init_value.zero();
 
 						track_value->is_init = false;
@@ -703,7 +705,7 @@ bool AnimationMixer::_update_caches() {
 						if (has_reset_anim) {
 							int rt = reset_anim->find_track(path, track_src_type);
 							if (rt >= 0) {
-								if (track_src_type == Animation::TYPE_VALUE) {
+								if (is_value) {
 									if (reset_anim->track_get_key_count(rt) > 0) {
 										track_value->init_value = reset_anim->track_get_key_value(rt, 0);
 									}