Language:
Page Info
Skill Level:
Share

3.Actor设置和测试

在最后一部分中,我们将控件蓝图作为 控件(Widget) 组件添加给Actor,并且定义当玩家单击 Enter 键时发生的事件,以测试输入的文本是否和 GoalText 相同。 一切都准备就绪之后,我们将进行测试,以查看最终结果(如果代码正确,Success 将输出到屏幕上,如果代码不正确,Wrong Code 将输出到屏幕上。

步骤

  1. 打开 KeypadDisplay 蓝图并添加 控件(Widget) 组件(需要将类设置为 KeypadDisplayWB 并且启用 按所需大小绘制(Draw at Desired Size))。

    Keypad15.png

    “按所需大小绘制(Draw at Desired Size)”是让渲染目标自动匹配控件蓝图中的所需大小的快捷方法。

  2. 打开 Keypad 蓝图并添加 控件(Widget) 组件(需要将类设置为 KeypadWB 并且启用 按所需大小绘制(Draw at Desired Size))。

  3. 针对此控件组件,取消勾选 窗口可聚焦(Window Focusable) 选项。

    Keypad16.png

    我们不希望此组件将焦点从Keypad Display控件移开,因此需要取消勾选此项。

  4. 继续在 Keypad 蓝图中添加 WidgetInteraction 组件(需要取消勾选 启用命中测试(Enable Hit Testing))。

    Keypad17.png

    添加此WidgetInteraction组件之后,我们就可以避免必须引用玩家角色中的WidgetInteraction组件的情况,而且我们不希望它生成任何悬停效果,因此需要禁用“命中测试(Hit Testing)”。WidgetInteraction组件创建时,它们的 虚拟用户索引(Virtual User Index) 默认设置为“0”,而且它们都使用此虚拟用户索引ID进行通信。由于玩家角色中的WidgetInteraction组件的“虚拟用户索引(Virtual User Index)”也为“0”,这与引用它的效果相同。

  5. Keypad 图上,从 Event Begin Play 拖出引线并将 Widget 组件和 Get User Widget ObjectCast to KeypadWB 相连。

    Keypad18.png

  6. As Keypad WB 引脚拖出引线,使用 Set Widget Interaction 并传递给步骤4中的 WidgetInteraction 组件。

  7. 接着从 As Keypad WB 引脚拖出引线,调用 Assign Enter Pressed,这将创建 Enter Pressed 自定义事件。

    Keypad19.png

    现在当我们单击Enter键时,将调用此自定义事件,我们可使用它来检查是否输入了正确的代码。

  8. 创建 Keypad Display Actor类型的 变量,将其命名为 TargetDisplay 并且将它设置为 可编辑(Editable)

    Keypad20.png

  9. 创建 文本(Text) 类型的 变量,将其命名为 GoalText,然后 编译(Compile) 并将其 默认值(Default Value) 设置为 1212

    Keypad21.png

  10. 按住 Ctrl 键并拖入 TargetDisplay,将其与 WidgetUser Widget Object 相连,然后 Cast to KeypadDisplayWB

    Keypad22.png

  11. As Keypad Display WB 引脚拖出引线,将其与 Editable Text BoxGetText(Text Box) 相连,以判定它是否 等于 Goal Text

    Keypad23.png

  12. 添加具有两个 Print StringBranch,其中一个与Branch的 True 引脚相连(使用“Success”),另一个与Branch的 False 引脚相连(使用“Wrong Code”)。

    Keypad24.png

  13. KeypadKeypadDisplay 蓝图拖到关卡中,并根据需要旋转/安置它们。

  14. Keypad Actor 的 细节(Details) 面板中,将 Target Display 变量设置为关卡中的 KeypadDisplay

    Keypad25.png

  15. 在关卡中运行。

最终结果

靠近键盘显示,在其中 右键单击 进行聚焦。你可以查看按键,右键单击 它们并发出 Send Key Char 命令,传递要显示的值。 在本示例中,我们使用鼠标右键在关卡中与控件交互,但是你也可以改为按下手柄或运动控制器按钮。

尽管本示例仅向屏幕输出表明输入的代码是否正确的文本,但你也可以触发打开门、生成敌人或任何其他形式的Gameplay相关事件!