A Bevy plugin for picking, making it easy to interact
with meshes in Bevy. Built with bevy_mod_raycast
.
- Mouse intersection coordinates in world space
- Mouseover and mouseclick events
- Configurable highlighting
- Selection state management
- 3D debug cursor
- Touch support
- Common keybindings (Ctrl+A, Ctrl+Click multi-select)
It only takes a few lines to get mouse picking working in your Bevy application using this plugin.
- Add the plugin to your app:
.add_plugins(DefaultPickingPlugins);
- Mark your camera as the picking source with the
PickingCameraBundle
component:
.insert_bundle(PickingCameraBundle::default());
- Add the
PickableBundle
component to any meshes you want to make pickable:
.insert_bundle(PickableBundle::default())
That's all there is to it! Read the docs and look at the provided examples to learn more.
To run a minimal demo, clone this repository and run:
cargo run --example minimal
I intend to track the main
branch of Bevy. PRs supporting this are welcome!
bevy | bevy_mod_picking |
---|---|
0.9 | 0.10, 0.11 |
0.8 | 0.8, 0.9 |
0.7 | 0.6, 0.7 |
0.6 | 0.5 |
0.5 | 0.4 |
0.4 | 0.3 |
0.3 | 0.2 |
This project is licensed under the MIT license.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in bevy_mod_picking by you, shall be licensed as MIT, without any additional terms or conditions.