From 775bd3497ea6c7372c58949a1e10b9df8b619c02 Mon Sep 17 00:00:00 2001 From: Bastiaan Olij Date: Tue, 16 Dec 2025 08:28:49 +1100 Subject: [PATCH] Hide properties on XRCamera3D that are managed by XRInterface --- scene/3d/xr/xr_nodes.cpp | 10 ++++++++++ scene/3d/xr/xr_nodes.h | 2 ++ 2 files changed, 12 insertions(+) diff --git a/scene/3d/xr/xr_nodes.cpp b/scene/3d/xr/xr_nodes.cpp index d4321d442de..80ca5ffd15e 100644 --- a/scene/3d/xr/xr_nodes.cpp +++ b/scene/3d/xr/xr_nodes.cpp @@ -36,6 +36,16 @@ //////////////////////////////////////////////////////////////////////////////////////////////////// +void XRCamera3D::_validate_property(PropertyInfo &p_property) const { + if (!Engine::get_singleton()->is_editor_hint()) { + return; + } + // Hide properties that are managed by XRInterface or otherwise not applicable for XRCamera3D. + if (p_property.name == "fov" || p_property.name == "projection" || p_property.name == "size" || p_property.name == "frustum_offset" || p_property.name == "keep_aspect") { + p_property.usage = PROPERTY_USAGE_NO_EDITOR; + } +} + void XRCamera3D::_bind_tracker() { XRServer *xr_server = XRServer::get_singleton(); ERR_FAIL_NULL(xr_server); diff --git a/scene/3d/xr/xr_nodes.h b/scene/3d/xr/xr_nodes.h index f56742a7c60..d213db00909 100644 --- a/scene/3d/xr/xr_nodes.h +++ b/scene/3d/xr/xr_nodes.h @@ -47,6 +47,8 @@ protected: StringName pose_name = SceneStringName(default_); Ref tracker; + void _validate_property(PropertyInfo &p_property) const; + void _bind_tracker(); void _unbind_tracker(); void _changed_tracker(const StringName &p_tracker_name, int p_tracker_type);