新手尝试在蓝图中按顺序排列

问题描述

我有一些级别。每个级别都有自己的按钮。部分对应蓝图:

settings picture

Define_Level 是我的事件,根据按下的按钮选择级别。

我是否需要有条件地为 20 个级别创建 20 个这样的小结构?这听起来很糟糕。我想从 Event 中获取有关按钮的信息,但我没有找到执行此操作的路径。

///////////////////////////////////////////// /////////////////////

后记:

我创建了按钮的子类。现在我可以直接在我的按钮上设置 Level_num,这很酷。

我无法理解的最后一件事是如何将该函数绑定到 On_Clicked_Event

我试过了,但我需要为 Bind_Event_To_On_Clicked 输入设置一些东西。

enter image description here

解决方法

您可以创建一个新的 bp 类,它是 UMG 按钮类的子类,将其命名为 LevelSelectButton

给类一个Name成员变量,LevelName

然后在那里定义一个名为 SetLevel 的函数,它使用 LevelName 设置级别。最后在按钮中,在适当的事件上使用 LevelName 调用 SetLevel。 (我宁愿在点击时执行,但如果您希望它在发布时发生,则由您决定)。

您需要创建一个调用 SetLevel 的自定义事件,然后使用 将事件绑定到 On Clicked 来附加该事件。创建另一个名为 Init 的自定义事件,该事件调用 Bind Event

Example of bind event to On Click

然后在将包含按钮的菜单小部件中,为您想要的每个级别选择按钮使用 LevelSelectButton,并分配每个按钮的 LevelName作为它应该开始的级别的名称。

最后,您需要在创建菜单时调用每个按钮上的 Init。一种方法是获取按钮容器的所有子项,将它们转换为 LevelSelectButton,然后对它们调用 Initexample of iterating through children of button containers