我正在使用虚幻引擎4和C++制作一个UI菜单。我有这样的代码(取自这个帖子)。
H:
UPROPERTY(meta = (BindWidget)) UButton* TestButton;
UFUNCTION() void OnClick();
CPP:
void UWidgetClassName::NativeConstruct()
{
Super::NativeConstruct();
if (!TestButton->OnClicked.IsBound()) TestButton->OnClicked.AddDynamic(this, &UWidgetClassName::OnClick);
}
void UWidgetClassName::OnClick()
{
//I want to access the index of the clicked button here
}
代码有点简化,我实际上是在一个循环中动态创建这个按钮,所以我最终有很多按钮,所有这些按钮都调用同一个函数。有没有一种方法可以 "知道 "哪个按钮被按下,例如,如果我按下第一个按钮,我得到1,如果我按下第二个按钮,我得到2,等等?
非常感谢:)
所以,你可以做的是创建你自己的按钮类,你可以动态地创建,并在点击时返回某种形式的标识符,如索引或其他东西?如果你想保持它的通用性,你也可以将它们添加到某种容器列表中,并通过容器上的GetAllChildren访问特定的按钮,这将返回一个数组。
希望能帮到你