CommonUI输入优先级

需求情景: 父页面ActivatableWidgetA中有子控件CommonButtonB,ActivatableWidgetA和CommonButtonB配置了相同的输入快捷键,希望CommonButtonB优先响应输入。

查看代码发现 FActionRouterBindingCollection::AddBinding 会根据BindArgs的PriorityWithinCollection属性进行排序,但没有逻辑PriorityWithinCollection进行赋值。CommonButton中有InputPriority属性但也被标记为了需要删除。

请问在UE5.6中建议用什么方式来实现上面的需求?

您好,目前貌似没有特别好的方法,我看到代码里UCommonButtonBase::BindTriggeringInputActionToClick()这个函数里,并没有控制PriorityWithinCollection来调整顺序的代码,而且没有外逻辑来设置这个值,如果层层修改,需要修改很多地方。可以考虑自己继承一个UCommonButtonBase,和ActivatableWidget,然后重写BindTriggeringInputActionToClick,在函数里设置PriorityWithinCollection为两个比较特殊的值,来确定先后关系。