在unreal中FExecuteAction如何带参
在Unreal中,FExecuteAction是一个委托类型,用于执行一个无参数的回调函数。如果你想要在执行回调函数时传递参数,你可以使用lambda表达式来包装你的回调函数,并在lambda表达式中传递参数。
以下是一个示例,演示如何使用FExecuteAction带参数的例子:
void MyActionFunction(int32 Parameter)
{
// 在这里执行你的操作,可以使用传递的参数
UE_LOG(LogTemp, Warning, TEXT("Parameter: %d"), Parameter);
}
void MyClass::SomeFunction()
{
int32 MyParameter = 10;
FUIAction MyAction;
MyAction.ExecuteAction.BindLambda([=]() {
MyActionFunction(MyParameter);
});
// 执行Action
MyAction.ExecuteAction.ExecuteIfBound();
}
在上述示例中,我们定义了一个名为MyActionFunction的带有一个int32参数的函数。然后,我们在SomeFunction中创建了一个FUIAction实例,并使用lambda表达式来包装我们的回调函数MyActionFunction。在lambda表达式中,我们使用[=]来捕捉外部的MyParameter变量,并在执行回调函数时传递它。
最后,我们通过调用MyAction.ExecuteAction.ExecuteIfBound()来执行我们的Action并传递参数
原文地址: https://www.cveoy.top/t/topic/hNUs 著作权归作者所有。请勿转载和采集!