Crates.io | bevy_interact_2d |
lib.rs | bevy_interact_2d |
version | 0.9.0 |
source | src |
created_at | 2021-05-05 20:17:01.461487 |
updated_at | 2022-12-28 22:19:44.266252 |
description | A Bevy plugin for 2d mouse interactions |
homepage | http://github.com/Anshorei/bevy_rei |
repository | http://github.com/Anshorei/bevy_rei |
max_upload_size | |
id | 393554 |
size | 117,413 |
Work in progress
Plugin library for the Bevy game engine to easily add mouse interactions to 2d games.
Can help you with:
Add the interaction plugin, or use the InteractionDebugPlugin
instead when debugging.
App::build()
.add_plugin(InteractionPlugin)
Spawn a camera with an interaction source with a number of interaction groups.
commands
.spawn_bundle(OrthographicCameraBundle::new_2d())
.insert(InteractionSource {
groups: vec![Group(0), Group(1)],
..Default::default()
})
Spawn an interactable entity
commands
.spawn()
.insert(Interactable {
groups: vec![Group(0)],
bounding_box: (Vec2::new(0., 0.), Vec2::new(10., 10.)),
..Default::default()
})
Now you can create a system that uses the interaction state
fn interaction_system(
mouse_button_input: Res<Input<MouseButton>>,
interaction_state: Res<InteractionState>,
) {
if !mouse_button_input.just_released(MouseButton::Left) {
return;
}
for (entity, coords) in interaction_state.get_group(Group(0)).iter() {
// Do something
}
}