瀏覽代碼

Fix forward_vector scale to handle safe_margin in LookAtModifier

Silc Lizard (Tokage) Renew 9 月之前
父節點
當前提交
27bd7b23f6
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      scene/3d/look_at_modifier_3d.cpp

+ 1 - 1
scene/3d/look_at_modifier_3d.cpp

@@ -486,7 +486,7 @@ void LookAtModifier3D::_process_modification() {
 		} else {
 			origin_tr = bone_rest_space;
 		}
-		forward_vector = bone_rest_space.basis.xform_inv((target->get_global_position() - origin_tr.translated_local(origin_offset).origin));
+		forward_vector = bone_rest_space.orthonormalized().basis.xform_inv((target->get_global_position() - origin_tr.translated_local(origin_offset).origin));
 		forward_vector_nrm = forward_vector.normalized();
 		if (forward_vector_nrm.abs().is_equal_approx(get_vector_from_axis(primary_rotation_axis))) {
 			destination = skeleton->get_bone_pose_rotation(bone);