Dynamic and contextual input mappings for Bevy. Contribute to projectharmonia/bevy_enhanced_input development by creating an account on GitHub.
It's a crate for dynamic and contextual input mappings for Bevy, inspired by Unreal Engine Enhanced Input.
I really like the UE approach and decided to bring it to Bevy.
Despite being the first release, it's packed with features:
Map inputs from various sources (keyboard, gamepad, etc.) to gameplay actions like Jump, Move, or Attack.
Assign actions to different contexts like OnFoot or InCar, which are regular components.
Activate or deactivate contexts by simply adding or removing components.
Control how actions accumulate input from sources and consume it.
Layer multiple contexts on a single entity, controlled by priority.
Apply modifiers to inputs, such as dead zones, inversion, scaling, etc., or create custom modifiers by implementing a trait.
Assign conditions for how and when an action is triggered, like "hold", "tap", "chord", etc. You can also create custom conditions, such as "on the ground".
React on actions with observers.
I've implemented everything from UE and even added some extras. The crate also has ~90% test coverage.
It should work seamlessly since Steam Input operates at a lower level.
The app will receive the already-mapped input, so no additional handling needed.