|
@@ -30,6 +30,7 @@
|
|
|
|
|
|
#include "xr_hand_modifier_3d.h"
|
|
#include "xr_hand_modifier_3d.h"
|
|
|
|
|
|
|
|
+#include "core/config/project_settings.h"
|
|
#include "servers/xr/xr_pose.h"
|
|
#include "servers/xr/xr_pose.h"
|
|
#include "servers/xr_server.h"
|
|
#include "servers/xr_server.h"
|
|
|
|
|
|
@@ -283,6 +284,17 @@ void XRHandModifier3D::_skeleton_changed(Skeleton3D *p_old, Skeleton3D *p_new) {
|
|
_get_joint_data();
|
|
_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) {
|
|
void XRHandModifier3D::_notification(int p_what) {
|
|
switch (p_what) {
|
|
switch (p_what) {
|
|
case NOTIFICATION_ENTER_TREE: {
|
|
case NOTIFICATION_ENTER_TREE: {
|