This repository was archived by the owner on Mar 4, 2025. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 175
Select event is not dispatched when clicking on child entities #367
Copy link
Copy link
Open
Description
Minimal code to reproduce:
use bevy::prelude::*;
use bevy_mod_picking::prelude::*;
fn main() -> AppExit {
let mut app = App::new();
app.add_plugins((
bevy::DefaultPlugins,
bevy_mod_picking::DefaultPickingPlugins,
));
app.add_systems(Startup, |mut commands: Commands, mut meshes: ResMut<Assets<Mesh>>, mut materials: ResMut<Assets<StandardMaterial>>| {
commands.spawn(Camera3dBundle{
transform: Transform::from_xyz(0.0, 0.0, 5.0),
..Default::default()
});
commands.spawn((
SpatialBundle::default(),
On::<Pointer<Select>>::run(|listener: Listener<Pointer<Select>>| { println!("Select {:?}", listener.listener()) }),
On::<Pointer<Deselect>>::run(|listener: Listener<Pointer<Deselect>>| { println!("Deselect {:?}", listener.listener()) }),
On::<Pointer<Click>>::run(|listener: Listener<Pointer<Click>>| { println!("Click {:?}", listener.listener()) }),
On::<Pointer<Over>>::run(|listener: Listener<Pointer<Over>>| { println!("Over {:?}", listener.listener()) }),
On::<Pointer<Out>>::run(|listener: Listener<Pointer<Out>>| { println!("Out {:?}", listener.listener()) }),
)).with_children(|b| {
b.spawn((
PbrBundle {
mesh: meshes.add(Cuboid::default()),
material: materials.add(StandardMaterial { base_color: Color::WHITE, ..Default::default() }),
..Default::default()
},
));
});
});
app.run()
}Outputs when I move cursor onto the cuboid, click, release, move cursor out:
Over Entity { index: 3, generation: 1 }
Click Entity { index: 3, generation: 1 }
Out Entity { index: 3, generation: 1 }
It seems inconsistent that both over/out and click work on child entities but selection does not.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels