mouse_input_events/
mouse_input_events.rs

1//! Prints all mouse events to the console.
2
3use bevy::{
4    input::{
5        gestures::*,
6        mouse::{MouseButtonInput, MouseMotion, MouseWheel},
7    },
8    prelude::*,
9};
10
11fn main() {
12    App::new()
13        .add_plugins(DefaultPlugins)
14        .add_systems(Update, print_mouse_events_system)
15        .run();
16}
17
18/// This system prints out all mouse events as they come in
19fn print_mouse_events_system(
20    mut mouse_button_input_reader: MessageReader<MouseButtonInput>,
21    mut mouse_motion_reader: MessageReader<MouseMotion>,
22    mut cursor_moved_reader: MessageReader<CursorMoved>,
23    mut mouse_wheel_reader: MessageReader<MouseWheel>,
24    mut pinch_gesture_reader: MessageReader<PinchGesture>,
25    mut rotation_gesture_reader: MessageReader<RotationGesture>,
26    mut double_tap_gesture_reader: MessageReader<DoubleTapGesture>,
27) {
28    for mouse_button_input in mouse_button_input_reader.read() {
29        info!("{:?}", mouse_button_input);
30    }
31
32    for mouse_motion in mouse_motion_reader.read() {
33        info!("{:?}", mouse_motion);
34    }
35
36    for cursor_moved in cursor_moved_reader.read() {
37        info!("{:?}", cursor_moved);
38    }
39
40    for mouse_wheel in mouse_wheel_reader.read() {
41        info!("{:?}", mouse_wheel);
42    }
43
44    // This event will only fire on macOS
45    for pinch_gesture in pinch_gesture_reader.read() {
46        info!("{:?}", pinch_gesture);
47    }
48
49    // This event will only fire on macOS
50    for rotation_gesture in rotation_gesture_reader.read() {
51        info!("{:?}", rotation_gesture);
52    }
53
54    // This event will only fire on macOS
55    for double_tap_gesture in double_tap_gesture_reader.read() {
56        info!("{:?}", double_tap_gesture);
57    }
58}