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
, orAttack
. - Assign actions to different contexts like
OnFoot
orInCar
, 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.
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.