【UE4】使用手柄控制UI,选择按钮

动机

最近在开发一个手柄塔防游戏,需要主角靠近塔的时候使用手柄选择建造哪一座塔。这时候实现手柄控制UI选择就十分必要了。
在B站上我有看到一个使用手柄控制UI的视频,是在UI里面每一tick检测输入,但是我为了优化的目的尽量不用tick,于是尝试出了这样的方法。


步骤

1. 绑定手柄的选择按键

在这里插入图片描述
在这里插入图片描述

  • 名字和按键对应没关系,根据需要来就好了。

2. 创建简单的UI

在这里插入图片描述

  • 创建一个控件蓝图

在这里插入图片描述

  • 创建几个可选择的按钮

3. UI选择按钮事件

在这里插入图片描述

  • 蓝色是按钮组件,创建一个index和一个size,分别代表当前选择的按钮和最大按钮数。

在这里插入图片描述

  • 加减事件,也就是选择下一个按钮和上一个按钮。使用取余的方法循环选择,因为UE中负数取余会有问题,所以减一次要加一次size。

在这里插入图片描述

  • 而Update事件就是将当前的按钮变成当前按钮的状态。为了更加显眼这里把背景变成红色。
  • reset back ground是把所有的按钮变回原来的颜色。

在这里插入图片描述* 最开始要调用一次Update,这样默认选择的就是第一个按钮


4. UI确认事件

在这里插入图片描述

  • 创建Press事件,触发当前index选择的按钮的程序。使用switch选择后的处理,我是设置了一个塔的类型,根据大家的实际需要来写吧。

5. 创建UI

在这里插入图片描述

  • 如果我们希望这个选择菜单是唯一的,可以创建一个用户控件UI进行处理。

在这里插入图片描述

  • 创建UI的时候,如果UI已存在就先remove掉。
  • 至于这个创建事件是怎么触发的,也是根据实际需要。可以是按键触发,也可以是游戏中的事件触发。

在这里插入图片描述

  • 创建UI后,保存在UI这个变量里面。

6. 使用手柄操作事件控制UI

在这里插入图片描述

  • 在人物蓝图里面创建输入操作,让UI执行Add事件(减也是一样的)
  • 我因为有不同UI类型要处理,所以加了选择和cast,只有一种UI可以省略。

在这里插入图片描述

  • 确认操作也是一样,获取UI,调用事件。调用事件后可以进行后续处理。
  • 我这里在确认塔的类型后,立刻就调用build tower函数建塔。

7. 实际效果

在这里插入图片描述

  • 一开始是范围塔
    在这里插入图片描述
  • 选择后变成射击塔

在这里插入图片描述

  • 两种塔都能正确建好

猜你喜欢

转载自blog.csdn.net/Alexander_420/article/details/124746549