浏览代码

fix unintentional object rotation by animation tree

(cherry picked from commit ddac0e95dc72ffe9472495d6b46743829c4dbea9)
Tokage 5 年之前
父节点
当前提交
0454848f4d
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      scene/animation/animation_tree.cpp

+ 2 - 2
scene/animation/animation_tree.cpp

@@ -599,9 +599,9 @@ bool AnimationTree::_update_caches(AnimationPlayer *player) {
 
 						if (path.get_subname_count() == 1 && Object::cast_to<Skeleton>(spatial)) {
 							Skeleton *sk = Object::cast_to<Skeleton>(spatial);
+							track_xform->skeleton = sk;
 							int bone_idx = sk->find_bone(path.get_subname(0));
 							if (bone_idx != -1) {
-								track_xform->skeleton = sk;
 								track_xform->bone_idx = bone_idx;
 							}
 						}
@@ -1207,7 +1207,7 @@ void AnimationTree::_process_graph(float p_delta) {
 					} else if (t->skeleton && t->bone_idx >= 0) {
 						t->skeleton->set_bone_pose(t->bone_idx, xform);
 
-					} else {
+					} else if (!t->skeleton) {
 						t->spatial->set_transform(xform);
 					}