Language:
Page Info
Skill Level:
Engine Version:
Share

4.On Drop

此处我们将设置主 HUD 控件蓝图并覆盖执行 OnDrop 函数时发生的情况。

步骤

  1. 打开 HUD 控件蓝图,然后在 Canvas PanelDetails 面板中将其 Visibility 设为 Visible

    DragDrop13.png

    我们在体力条控件中执行拖拽检测,然而松开鼠标左键时我们需要将它放置在 HUD 控件蓝图中。 为使 HUD 获得命中检测,我们需要将 Visibility 设为 Visible

  2. Palette 窗口添加 Health Bar 控件到所需位置的图表。

    DragDrop14.png

  3. 前往 Graph 模式,在 My Blueprint 面板中添加一个 OnDrop 函数覆写。

    DragDrop15.png

  4. OnDrop 连出 OperationCast to WidgetDrag,然后再连出 Get Widget ReferenceGet Drag Offset

    DragDrop16.png

    我们在此进行计算,检查哪种类型的操作作为 OnDrop 函数的部分执行,是 Widget Drag 吗? 如是,我们将获得 WidgetReference(通过被拖拽的控件进行传递)和 DragOffset(或开始拖动的位置)。

  5. My GeometryPointer Event 连出引线,使用 Absolute to LocalGetScreenSpacePosition 节点,按下图中的方式进行连接。

    DragDrop17.png

    这将告知我们在 2D 空间中松开鼠标左键放置控件的位置。 我们将用该位置减去 DragOffset,决定放置控件时应将其置于何处。

  6. Absolute to LocalReturn Value 减去 DragOffset

    UpdateDragDrop1.png

  7. Widget Reference 连出引线,添加 Remove from Parent,而后是 Add to ViewportSet Position in Viewport 节点。

  8. 如下图所示连接节点,取消勾选 Remove DPIScale,勾选 Return Node 上的 Return Value

    点击查看全图。

    取消勾选 Remove DPIScale 并勾选 Return Value 勾选框,因为不需要移除 DPI 缩放 ,已对此函数进行处理(返回为 true)。 我们首先通过此脚本移除现有的体力条控件,然后将其重新添加到相对于 Drag Offset 的新位置中的画面。

我们已设置 HUD 处理拖拽控件的放置,它还将显示体力条。 在此教程的最后一部分中,我们将设置被拖拽控件模拟体力条的外形,并对角色蓝图发出指令将 HUD 添加到视口。