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
PickingCameraBundlecomponent:
.insert_bundle(PickingCameraBundle::default());- Add the
PickableBundlecomponent 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.
