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.
๐ฆbevy_enhanced_replicon
This does look cool. How would it work together with Steam Input?
Thanks!
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.