在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并传递参数

在unreal中FExecuteAction如何带参

原文地址: https://www.cveoy.top/t/topic/hNUs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录