gamepad_input_events/
gamepad_input_events.rs1use bevy::{
4 input::gamepad::{
5 GamepadAxisChangedEvent, GamepadButtonChangedEvent, GamepadButtonStateChangedEvent,
6 GamepadConnectionEvent, GamepadEvent,
7 },
8 prelude::*,
9};
10
11fn main() {
12 App::new()
13 .add_plugins(DefaultPlugins)
14 .add_systems(Update, (gamepad_events, gamepad_ordered_events))
15 .run();
16}
17
18fn gamepad_events(
19 mut connection_events: MessageReader<GamepadConnectionEvent>,
20 mut axis_changed_events: MessageReader<GamepadAxisChangedEvent>,
22 mut button_changed_events: MessageReader<GamepadButtonChangedEvent>,
24 mut button_input_events: MessageReader<GamepadButtonStateChangedEvent>,
28) {
29 for connection_event in connection_events.read() {
30 info!("{:?}", connection_event);
31 }
32 for axis_changed_event in axis_changed_events.read() {
33 info!(
34 "{:?} of {} is changed to {}",
35 axis_changed_event.axis, axis_changed_event.entity, axis_changed_event.value
36 );
37 }
38 for button_changed_event in button_changed_events.read() {
39 info!(
40 "{:?} of {} is changed to {}",
41 button_changed_event.button, button_changed_event.entity, button_changed_event.value
42 );
43 }
44 for button_input_event in button_input_events.read() {
45 info!("{:?}", button_input_event);
46 }
47}
48
49fn gamepad_ordered_events(mut gamepad_events: MessageReader<GamepadEvent>) {
53 for gamepad_event in gamepad_events.read() {
54 match gamepad_event {
55 GamepadEvent::Connection(connection_event) => info!("{:?}", connection_event),
56 GamepadEvent::Button(button_event) => info!("{:?}", button_event),
57 GamepadEvent::Axis(axis_event) => info!("{:?}", axis_event),
58 }
59 }
60}