only render hand gizmos if they are actively tracked

Signed-off-by: Schmarni <marnistromer@gmail.com>
This commit is contained in:
Schmarni
2024-11-20 10:33:59 +01:00
parent 4c415d066a
commit d1cc160cac

View File

@@ -1,6 +1,7 @@
use bevy::color::palettes::css;
use bevy::{prelude::*, transform::TransformSystem};
use bevy_mod_xr::hands::{HandBone, HandBoneRadius};
use bevy_mod_xr::spaces::XrSpaceLocationFlags;
pub struct HandGizmosPlugin;
impl Plugin for HandGizmosPlugin {
fn build(&self, app: &mut App) {
@@ -12,9 +13,17 @@ impl Plugin for HandGizmosPlugin {
}
fn draw_hand_gizmos(
mut gizmos: Gizmos,
query: Query<(&GlobalTransform, &HandBone, &HandBoneRadius)>,
query: Query<(
&GlobalTransform,
&HandBone,
&HandBoneRadius,
&XrSpaceLocationFlags,
)>,
) {
for (transform, bone, radius) in &query {
for (transform, bone, radius, flags) in &query {
if (!flags.position_tracked) || (!flags.rotation_tracked) {
continue;
}
let pose = transform.compute_transform();
let pose = Isometry3d {
translation: pose.translation.into(),