This behaviour was working correctly in version 5.3. This issue happens inside an InputMappingContext DataAsset from the EnhancedInput system. We need at least two mappings entries. One of the entries needs to have an FKey assigned like Q, and the other entry need to have a Combo Trigger. Setting the Combo Trigger will disable the assign key section.
With the two entries setup, if we now swap the position of both entries by dragging one entry to the other, they swap their position, but also the Combo FKey will be propagated to the Q FKey entry. This will remove the Q FKey from the entry, and will assign also the ComboButton FKey.
After some debug, I've seen that FPropertyNode::NotifyPreChange and NotifyPostChange gets called once with two entries without a Combo Trigger. When two keys are swapped with one of them having a Combo Trigger, these two functions gets called twice, not once. In the second call is where both entries get the same ComboButton assigned.
The Combo information displayed inside the InputMappingContext entries comes from the SKeySelectorClass. The information is gathered from the TAttribute<TOptional<FKey>> CurrentKey variable. For some reason, CurrentKey variable has the Q FKey assigned and after the swap, this CurrentKey gets set to ComboButton FKey. Also, both entries of the InputMappingContext get assigned the ComboButton FKey.
1- Inside the Unreal Editor, create an InputMappingContext.
2- Create two entries from two InputActions.
3- Assign a keyboard key like Q for one of the Mapping entries. Assign a Combo Trigger for the other key. This will invalidate the assign key section.
4- Swap both entries positions.
5- After the swap, the Q mapping entry will be assigned with the Combo Key Button.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-222480 in the post.
1 |
Component | UE - Gameplay - Input |
---|---|
Affects Versions | 5.4.3 |
Target Fix | 5.6 |
Created | Aug 23, 2024 |
---|---|
Updated | Oct 1, 2024 |