创建并使用 Widget
Widget 可用于在游戏中显示自定义界面。本文通过显示玩家位置的示例,介绍如何创建 Widget、在 ModActor 中初始化它并调用其方法。
来源:Dmgvol / UE_Modding 原文。详细资料可参考虚幻引擎的 UMG UI 设计器快速入门。
创建 Widget
在内容浏览器中右键,选择 User Interface → Widget Blueprint,然后在 Common 中选择 User Widget。可按 WBP_ 前缀命名,例如 WBP_MyWidget。
双击打开 Widget,在左上角搜索 Canvas 并将其拖到层级树的根对象上。再搜索 Text,将它拖到 Canvas Panel 上。将文本设为变量、命名并调整位置。
布局和面板的更多信息可参阅官方 Widget Blueprints 文档。
设置 Widget 事件图表
进入 Widget 的 Event Graph,右键搜索 custom 创建自定义事件,命名为 SetPositionText,并添加一个 Vector 类型的输入变量。按照下图连接逻辑。
初始化 Widget
在 Mod 的 ModActor 中添加 Create Widget 节点,连接到 BeginPlay,使 Actor 生成时创建 Widget;在 Class 字段选择 Widget 类,再连接 Add to Viewport 节点。
为了之后访问 Widget,从其 Return Value 引脚拖出并提升为变量。
更新显示内容
示例在 Event Tick 中获取玩家 Pawn 的位置,再调用 Widget 的方法更新位置文本。原文建议避免在 ModActor 等 Widget 外部直接访问文本组件,而是通过方法降低对象间的耦合。
为了提高可读性,可以给数据添加文字说明;对于 Vector,原文示例还将数值除以 100。