Language:
Page Info
Skill Level:
Engine Version:
Share

3.On Drag Detected(检测到拖动)

在这步中,我们将决定玩家实际在屏幕上拖动 HealthBar 时发生的状况。

步骤

  1. 打开 OnDragDetected 函数,点击右键 并添加一个设为 Drag WidgetCreate Widget,然后进行 浏览

    UpdatedDragDrop1.png

    监测到拖动后,我们将创建 DragWidget(它将保存拖动控件)。 继续使用 OnDragDetected 函数之前,DragWidget 创建时我们需要通过体力条控件进行传输(作为引用)。

  2. 打开 DragWidget,添加一个名为 WidgetReferenceUser Widget 变量,设为 Expose on SpawnEditable

    UpdatedDragDrop2.png

  3. 编译 并关闭 DragWidget,然后再次打开 HealthBar 控件蓝图和 OnDragDetected 函数。

  4. Self 指定为 Widget Reference,然后将 Return Value 提升 为名为 Dragged Widget 的变量,然后按下图所示进行连接。

    UpdatedDragDrop3.png

    现在当拖动控件创建后,它将拥有一个对现有体力条的引用。 我们还将虚拟拖动控件提升为变量,以便之后进行访问,并在选择放置控件时使其不再显示。

  5. 点击右键 并创建一个 DragAndDropOperation 节点(设为 Widget Drag),Pivot 设为 Mouse Down

    UpdatedDragDrop4.png

    枢轴(Pivot)决定 Drag Widget Visual 相对于指针执行拖动操作被拖动时出现的位置。

  6. 在节点上将 Self 作为 Widget Reference 添加,DraggedWidget 作为 Default Drag Visual 添加、Drag Offset 作为 Drag Offset 添加。

    点击查看全图。

    前文中我们说明了哪个控件蓝图是应用,拖动可视应该是什么,并提供了一个开始拖动的偏移。 节点上默认有一个偏移引脚,然而在计算鼠标键按下后开始拖动的位置时,我们将使用自己的引脚。

最后需要执行的几项操作是确定玩家松开鼠标左键并执行 OnDrop 函数时发生的情况。我们还需要将 HealthBar 控件添加到主 HUD 控件蓝图,并在测试所有内容之前告知其进行显示。