diff --git a/crates/bevy_sprite/src/picking_backend.rs b/crates/bevy_sprite/src/picking_backend.rs index 480617a3f3fb2..332327defacd3 100644 --- a/crates/bevy_sprite/src/picking_backend.rs +++ b/crates/bevy_sprite/src/picking_backend.rs @@ -42,7 +42,7 @@ pub enum SpritePickingMode { #[reflect(Resource, Default)] pub struct SpritePickingSettings { /// When set to `true` sprite picking will only consider cameras marked with - /// [`SpritePickingCamera`] and entities marked with [`Pickable`]. `false` by default. + /// [`SpritePickingCamera`]. /// /// This setting is provided to give you fine-grained control over which cameras and entities /// should be used by the sprite picking backend at runtime. @@ -94,7 +94,7 @@ fn sprite_picking( Entity, &Sprite, &GlobalTransform, - Option<&Pickable>, + &Pickable, &ViewVisibility, )>, mut output: EventWriter, @@ -102,8 +102,7 @@ fn sprite_picking( let mut sorted_sprites: Vec<_> = sprite_query .iter() .filter_map(|(entity, sprite, transform, pickable, vis)| { - let marker_requirement = !settings.require_markers || pickable.is_some(); - if !transform.affine().is_nan() && vis.get() && marker_requirement { + if !transform.affine().is_nan() && vis.get() { Some((entity, sprite, transform, pickable)) } else { None @@ -219,8 +218,7 @@ fn sprite_picking( } }; - blocked = cursor_in_valid_pixels_of_sprite - && pickable.is_none_or(|p| p.should_block_lower); + blocked = cursor_in_valid_pixels_of_sprite && pickable.should_block_lower; cursor_in_valid_pixels_of_sprite.then(|| { let hit_pos_world = diff --git a/examples/picking/sprite_picking.rs b/examples/picking/sprite_picking.rs index 27939169a8341..7b6b2d1582b08 100644 --- a/examples/picking/sprite_picking.rs +++ b/examples/picking/sprite_picking.rs @@ -60,6 +60,7 @@ fn setup(mut commands: Commands, asset_server: Res) { .spawn(( Sprite::from_color(Color::BLACK, sprite_size), Transform::from_xyz(i * len - len, j * len - len, -1.0), + Pickable::default(), )) .observe(recolor_on::>(Color::srgb(0.0, 1.0, 1.0))) .observe(recolor_on::>(Color::BLACK)) @@ -79,6 +80,7 @@ fn setup(mut commands: Commands, asset_server: Res) { Transform::from_xyz(i * len - len, j * len - len, 0.0) .with_scale(Vec3::splat(1.0 + (i - 1.0) * 0.2)) .with_rotation(Quat::from_rotation_z((j - 1.0) * 0.2)), + Pickable::default(), )) .observe(recolor_on::>(Color::srgb(0.0, 1.0, 0.0))) .observe(recolor_on::>(Color::srgb(1.0, 0.0, 0.0))) @@ -140,6 +142,7 @@ fn setup_atlas( Transform::from_xyz(300.0, 0.0, 0.0).with_scale(Vec3::splat(6.0)), animation_indices, AnimationTimer(Timer::from_seconds(0.1, TimerMode::Repeating)), + Pickable::default(), )) .observe(recolor_on::>(Color::srgb(0.0, 1.0, 1.0))) .observe(recolor_on::>(Color::srgb(1.0, 1.0, 1.0)))