Unreal Engine 4 C++ 中切换按钮的点击功能

Click function on Toggle Buttons in Unreal Engine 4 C++

我对复选框和点击事件有疑问。我有一些执行 OnClick 函数的按钮,代码如下所示:

SomeButton->OnClicked.AddDynamic(this, &ClassName::FunctionToExecute);

出于样式原因,我认为我应该使用通过复选框实现的切换按钮,而不是常规按钮。但是,我无法找到将函数绑定到每次点击的正确方法。到目前为止,我尝试过类似的方法,但它不起作用。我也试过声明一个委托,但它也不起作用。

SomeCheckBox->OnCheckStateChanged.Add(&ClassName::FunctionToExecute);

将函数绑定到 OnCheckStateChanged() 事件的正确方法是什么? 非常感谢提前:smile:

如果您使用的是 UMG 复选框(听起来您就是这样),那么我们可以查看委托声明:

// In Checkbox.h 
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( FOnCheckBoxComponentStateChanged, bool, bIsChecked );

注意我们的回调函数需要一个 bool 输入参数。

这意味着我们的回调函数必须如下所示:

void UYourWidget::OnCheckboxChanged(bool bIsChecked) {}

然后您可以像这样绑定您的小部件:

if(CheckBox)
{
    CheckBox->OnCheckStateChanged.AddDynamic(this, &UTextChatWidget::Test);
}

如果您使用的是 slate 复选框,则回调函数声明会有些不同。它使用 ECheckBoxState 枚举而不是布尔值。

SNew(SCheckBox)
   .OnCheckStateChanged(this, &SFoo::OnStateChanged)

void SFoo::OnStateChanged(ECheckBoxState NewState) {}

我解决这个问题的典型方法是简单地 CTRL+SHIFT+F 搜索 Visual Studio 中的委托以找到它的其他示例。