虽然在 Unreal5.5 中使用 UMG 创建简单的用户界面难度不高,但尝试支持手柄操作菜单的过程中遇到不少坑。
比如简单的开始界面
默认就支持通过鼠标点击按钮,但无法用手柄选择按钮。实际上 UMG 本身是支持键盘和手柄,但截至 5.5 版本只在按钮获取焦点时,键盘和手柄才能选择按钮。
添加蓝图脚本支持手柄
当按钮失去焦点时,无法通过手柄去操作按钮,所以以下蓝图是在所有按钮都未获取焦点时,让"开始"节点获取焦点,从而让手柄顺滑的操作按钮。
其中 bHasButtonFocus 变量记录是否有按钮获取焦点。
其中 "Start Button" 和 "Quit Button" 是设计器中勾选上变量。
其它的坑
如果要移除按钮获取焦点时自动加的的边框,则可以通过以下设置禁用。
如果要触发 OnKeyDown 函数,则要设置用户界面为可聚焦和可视性。