示例 - 自定义日志器
作为一个示例,我们将创建一个自定义控件来打印不同的消息,既用于调试也用于通知目的。
[!IMPORTANT]
本指南假设您已经阅读了之前的蓝图修改指南,并且您知道如何创建蓝图、控件、方法和变量。
我们需要创建3个资产:
- ModActor:我们mod的主要逻辑。
- WBP_Logger:持有通知的控件。
- WBP_Notification:包含消息的实际通知。
创建控件布局
这个控件将持有一个通知的垂直列表。
- 创建一个新控件,命名为
WBP_Logger
。 - 添加一个画布面板。
- 添加一个锚定的滚动框。
- 将其锚定到左侧,垂直拉伸。
- 勾选"根据内容调整大小"。
- 设置为"是变量"并相应地命名它。
[!NOTE]
随意按照您的喜好设计,我创建了一个简单的垂直框,这样添加通知时会在下方堆叠。
[!NOTE]
我们将在有了通知控件后再回来实现逻辑。
创建通知控件
这个控件是将被添加到列表中的实际可视化通知。
- 创建另一个控件,命名为
WBP_Notification
。 - 添加一个画布面板。
- 添加一个文本组件。
- 命名它并设置为
是变量
。
- 命名它并设置为
- 勾选
根据内容调整大小
。
- 勾选
- 添加边距
10, 0, 10, 10
。
- 添加边距
定时通知
导航到控件的事件图表并创建以下逻辑。
这将创建一个计时器,在X秒后调用DestroyNofitication方法。
[!TIP] 为通知时间创建一个浮点变量,并设置其显示值。
创建通知
返回到WBP_Logger
控件(在滚动框中保存通知的控件),并创建以下逻辑。
- 创建一个自定义方法,命名为
PushNotification
,带有一个字符串输入。 - 添加一个
Create Widget
节点,并在Class字段中提供通知控件类。 - 从控件中获取文本组件并设置其文本。
- 将新创建的控件作为子项添加到滚动框组件中。
创建ModActor
创建您的mod的主角色蓝图,命名为ModActor
。
然后,创建控件,将其添加到视口并将引用保存到变量中。
使用日志器
对于此示例,将根据按下的键推送不同的通知,但您可以将其用于调试或向玩家显示其他有用的通知。
[!TIP] 只要您有控件实例的引用,就可以推送通知。
结果
通知在列表中堆叠,每个通知在3秒后消失。