diff --git a/examples/xr.rs b/examples/xr.rs index 363cbe9..f0d468d 100644 --- a/examples/xr.rs +++ b/examples/xr.rs @@ -5,7 +5,7 @@ use bevy::diagnostic::{FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin}; use bevy::prelude::*; use bevy::transform::components::Transform; -use bevy_openxr::xr_input::hand::OpenXrHandInput; +use bevy_openxr::xr_input::hand::{OpenXrHandInput, HandInputDebugRenderer}; use bevy_openxr::xr_input::prototype_locomotion::{proto_locomotion, PrototypeLocomotionConfig}; use bevy_openxr::xr_input::trackers::{ OpenXRController, OpenXRLeftController, OpenXRRightController, OpenXRTracker, @@ -26,6 +26,7 @@ fn main() { .insert_resource(PrototypeLocomotionConfig::default()) .add_systems(Startup, spawn_controllers_example) .add_plugins(OpenXrHandInput) + .add_plugins(HandInputDebugRenderer) .run(); } diff --git a/src/xr_input/hand.rs b/src/xr_input/hand.rs index 63e5ef8..f8a70ac 100644 --- a/src/xr_input/hand.rs +++ b/src/xr_input/hand.rs @@ -28,13 +28,22 @@ impl Plugin for OpenXrHandInput { fn build(&self, app: &mut bevy::prelude::App) { app.add_systems(Update, update_hand_skeletons) .add_systems(PreUpdate, update_hand_states) - .add_systems(PostUpdate, draw_hand_entities) .add_systems(Startup, spawn_hand_entities) .insert_resource(HandStatesResource::default()) .insert_resource(HandInputSource::default()); } } +/// add debug renderer for controllers +#[derive(Default)] +pub struct HandInputDebugRenderer; + +impl Plugin for HandInputDebugRenderer{ + fn build(&self, app: &mut bevy::prelude::App) { + app.add_systems(PostUpdate, draw_hand_entities); + } +} + #[derive(Resource)] pub enum HandInputSource { Emulated,