Merge pull request #96587 from Malcolmnixon/check-openxr-hand-tracking

Warn if XRHandModifier3D used with OpenXR and hand-tracking disabled
This commit is contained in:
Rémi Verschelde 2024-09-05 17:44:37 +02:00
commit af0058c7e6
No known key found for this signature in database
GPG key ID: C3336907360768E1
2 changed files with 14 additions and 0 deletions

View file

@ -30,6 +30,7 @@
#include "xr_hand_modifier_3d.h"
#include "core/config/project_settings.h"
#include "servers/xr/xr_pose.h"
#include "servers/xr_server.h"
@ -283,6 +284,17 @@ void XRHandModifier3D::_skeleton_changed(Skeleton3D *p_old, Skeleton3D *p_new) {
_get_joint_data();
}
PackedStringArray XRHandModifier3D::get_configuration_warnings() const {
PackedStringArray warnings = SkeletonModifier3D::get_configuration_warnings();
// Detect OpenXR without the Hand Tracking extension.
if (GLOBAL_GET("xr/openxr/enabled") && !GLOBAL_GET("xr/openxr/extensions/hand_tracking")) {
warnings.push_back("XRHandModifier3D requires the OpenXR Hand Tracking extension to be enabled.");
}
return warnings;
}
void XRHandModifier3D::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_ENTER_TREE: {

View file

@ -55,6 +55,8 @@ public:
void set_bone_update(BoneUpdate p_bone_update);
BoneUpdate get_bone_update() const;
PackedStringArray get_configuration_warnings() const override;
void _notification(int p_what);
protected: