Language:
Page Info
Skill Level:
Engine Version:
Share

2.控件设置

在这步中,我们将决定何时按下鼠标左键,并保存其在屏幕空间中按下的位置。 我们还使用 DetectDragIfPressed 确定玩家是否通过特定的键进行拖动。

步骤

  1. 打开 HealthBar 控件蓝图并删除 Hierarchy 窗口中的 Canvas Panel

  2. 添加一个 进度条(Progress Bar),然后对其 点击右键,在 Details 面板中用一个 500 x 50缩放框(Size Box) 将其 包含在内

    DragDrop4a.png

    可选择定义进度条的风格。在下图中,我们将预览调整为 Desired on Screen、将 Percent 设为 1.0,将进度条填充,并把颜色改为绿色。

    DragDrop4b.png

    在此教程中我们将不会制作一个拥有功能的体力条,因为这仅作展示之用。

  3. 切换至 Graph 模式,然后在 My Blueprint 面板中添加 OnMouseButtonDownOnDragDetected 置换。

    DragDrop5.png

    调用自定义脚本需要置换几个函数。鼠标键按下时将进行一些检查,还将检查出现控件拖动时发生的状况。

  4. OnMouseButtonDown 节点中,从 My Geometry 引脚连出引线并添加 Absolute to Local 节点。

  5. Mouse Event 引脚连出引线并添加 Get Screen Space Position,按下图所示方式进行连接。

    DragDrop6.png

    此处我们将获取鼠标按键注册一次按键所在的屏幕空间位置,将体力条控件的绝对坐标转换到本地空间。 这将会告知我们玩家在控件上实际进行点击的位置,以便将其用于确定放置控件的位置,因此我们把它存储为一个变量。

  6. 右键点击 Absolute to Local 引脚的 Return Value,然后选择 提升为变量(Promote to Variable),名为 Drag Offset

    DragDrop7.png

    即使 On Mouse Button Down 节点上出现错误也无需担心。函数设置完成后它便会消失。

  7. 在图表中 单击右键 并添加一个 Detect Drag if Pressed 节点。

  8. Drag Key 设为 Left Mouse Button,并将 鼠标事件 和剩余引脚如下图所示连接。

    DragDrop8.png

    此处我们将在开始 On Drag Detected 脚本之前确定玩家是否在拖动鼠标左键。

能够监测玩家是否在执行拖动后,下一部分我们将完成监测到拖动之后的设置。