Skip to content

Commit af0058c

Browse files
committed
Merge pull request godotengine#96587 from Malcolmnixon/check-openxr-hand-tracking
Warn if XRHandModifier3D used with OpenXR and hand-tracking disabled
2 parents 80b1cbb + 7c300d8 commit af0058c

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

scene/3d/xr_hand_modifier_3d.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030

3131
#include "xr_hand_modifier_3d.h"
3232

33+
#include "core/config/project_settings.h"
3334
#include "servers/xr/xr_pose.h"
3435
#include "servers/xr_server.h"
3536

@@ -283,6 +284,17 @@ void XRHandModifier3D::_skeleton_changed(Skeleton3D *p_old, Skeleton3D *p_new) {
283284
_get_joint_data();
284285
}
285286

287+
PackedStringArray XRHandModifier3D::get_configuration_warnings() const {
288+
PackedStringArray warnings = SkeletonModifier3D::get_configuration_warnings();
289+
290+
// Detect OpenXR without the Hand Tracking extension.
291+
if (GLOBAL_GET("xr/openxr/enabled") && !GLOBAL_GET("xr/openxr/extensions/hand_tracking")) {
292+
warnings.push_back("XRHandModifier3D requires the OpenXR Hand Tracking extension to be enabled.");
293+
}
294+
295+
return warnings;
296+
}
297+
286298
void XRHandModifier3D::_notification(int p_what) {
287299
switch (p_what) {
288300
case NOTIFICATION_ENTER_TREE: {

scene/3d/xr_hand_modifier_3d.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ class XRHandModifier3D : public SkeletonModifier3D {
5555
void set_bone_update(BoneUpdate p_bone_update);
5656
BoneUpdate get_bone_update() const;
5757

58+
PackedStringArray get_configuration_warnings() const override;
59+
5860
void _notification(int p_what);
5961

6062
protected:

0 commit comments

Comments
 (0)