Some enhanced input action triggers work as expected but only with analog / axis inputs (e.g. gamepad trigger, thumbstick) but not digital / boolean inputs (e.g. keyboard key, gamepad face button).
Triggers such as Chorded, Down, Hold and Pressed actuate with digital inputs but Hold and Release, Release and Tap do not.
These images show a simple Tap trigger test with a Print String off each of the input event pins. Implementation Output Test
Let’s say you are using UInputTriggerChordAction, like me a lot.
An essential nuance is that UInputTriggerHold has a very different consequence if put on a FEnhancedInputMapping & after it is mapped to a context, or if it is added to the underlying UInputAction which serves as a chord.
I found that using both these methods in synchronicity worked best. Otherwise, I have problem where some actions simply do not detonate. The goal of my input system is that after 0.075 seconds it checks if the chord is pressed.
For me what has worked very well to achieve this goal of input is, as a first step, mapping each keyboard key to an action, and adding to these a hold trigger:
Then building the actual “gameplay actions” out of these single events. *The gameplay actions either use a chord trigger and have no hold themselves (in this case, they derive their hold from the generated action they used as chord), or have no chord and a hold trigger and need to ignore settings for some reason?? (otherwise it just doesn’t work). This is the only configuration which works for me.
Seems like a lot of work, but I created two engine subsystems which collaborate to create the input mapping context automatically. I eventually intend to share my work publicly. Maybe this can help someone.