A straightforward stateful input manager for the Bevy game engine.
A straightforward stateful input manager for the Bevy game engine.
A straightforward but robust input-action manager for Bevy.
Inputs from various input sources (keyboard, mouse and gamepad) are collected into a common ActionState on your player entity,
which can be conveniently used in your game logic.
The mapping between inputs and actions is many-to-many, and easily configured and extended with the InputMap components on each player entity.
A single action can be triggered by multiple inputs (or set directly by UI elements or gameplay logic),
and a single input can result in multiple actions being triggered, which can be handled contextually.
| Bevy | leafwing-input-manager |
|---|---|
| 0.19 | 0.21 |
| 0.18 | 0.20 |
| 0.17 | 0.18..0.19 |
| 0.16 | 0.17 |
| 0.15 | 0.16 |
| 0.14 | 0.14..0.15 |
| 0.13 | 0.13 |
| 0.12 | 0.11..0.12 |
| 0.11 | 0.10 |
| 0.10 | 0.9 |
| 0.9 | 0.7..0.8 |
InputMap componentKeybindings, Keybindings headachesActionState componentinput_map.insert(Action::Jump, KeyCode::Space) and input_map.insert(Action::Jump, GamepadButton::South)? Have both!input_map.insert(Action::Console, ButtonlikeChord::new([KeyCode::ControlLeft, KeyCode::Shift, KeyCode::KeyC]))ClashStrategy enum: stop triggering individual buttons when you meant to press a chord!ActionDiff representation to send on the wire#![forbid(missing_docs)]Gamepads resource and use InputMap::set_gamepad.leafwing-input-manager to your Cargo.toml.Actionlike trait for it.InputManagerPlugin to your App.InputMap component to your player entity (or entities!).InputMap component on your player entity.ActionState component on your player entity to check the collected input state!…This snippet is the minimal.rs example from the examples folder: check there for more in-depth learning materials!
Please refer to the [features] section in the Cargo.toml for information about the available crate features.
No open issues yet, or sync has not completed.