Browse Source

Fix invalid `Skeleton3D` bone pose updates

The issue would cause log spams when trying to update the bone pose position or rotation with an invalid bone index.
Fredia Huya-Kouadio 1 year ago
parent
commit
039722a341
1 changed files with 5 additions and 0 deletions
  1. 5 0
      scene/3d/xr_hand_modifier_3d.cpp

+ 5 - 0
scene/3d/xr_hand_modifier_3d.cpp

@@ -207,6 +207,11 @@ void XRHandModifier3D::_process_modification() {
 
 		// Apply previous relative transforms if they are stored.
 		for (int joint = 0; joint < XRHandTracker::HAND_JOINT_MAX; joint++) {
+			const int bone = joints[joint].bone;
+			if (bone == -1) {
+				continue;
+			}
+
 			if (bone_update == BONE_UPDATE_FULL) {
 				skeleton->set_bone_pose_position(joints[joint].bone, previous_relative_transforms[joint].origin);
 			}