Skip to content

示例 - 自定义日志器

作为一个示例,我们将创建一个自定义控件来打印不同的消息,既用于调试也用于通知目的。

[!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秒后消失。