The root cause appears to be an order of operations change made for [Link Removed] (CL 18309493 in UE5/Main).
On EnhancedPlayerInput.cpp:238, the TriggerStateTracker is combined with state evaluated from the currently processed trigger. Then, line 239 sets the mapping state flag; however, it sets this irrespective of its prior value, leading to triggers on the IAs that are evaluated afterwards ignoring the mapping context state on line 501.
1. In a project using EnhancedInput, create a BP from the Input Trigger type
a. Override UpdateState to return None
b. Override GetTriggerType to return Blocker
2. Add the trigger to an IA
a. IA_Jump is the fastest
3. In the mapping context, assign two or more keybinds to the action
a. At least two should use the pressed trigger and one should be the last in the array
i. Pressed is the easiest to test
ii. Down will hide the issue as it’s the default
4. In gameplay, non-last keybinding will cause the player to constantly execute the input action, ignoring the Pressed Trigger
5. The last keybinding will act correctly
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-202771 in the post.
0 |
Component | UE - Gameplay - Input |
---|---|
Affects Versions | 5.3 |
Target Fix | 5.4 |
Created | Dec 15, 2023 |
---|---|
Resolved | Feb 6, 2024 |
Updated | Apr 16, 2024 |