通过功能参数将委托添加到现有的多播委托

时间:2019-03-11 22:33:29

标签: c++ delegates unreal-engine4

我正在尝试将动态委托添加到多播委托中,但未能如我所愿地使其正常工作。分配代码如下:

void UFiniteStateMachine::CreateTransition(TSoftObjectPtr<UFSM_State> from, TSoftObjectPtr<UFSM_State> to, const FQueryTransition &QueryTransitionCallback, float delay)
{
    UFSM_Transition* newTransition = NewObject<UFSM_Transition>();

    newTransition->transitionTime = delay;

    newTransition->QueryTransition.Add(QueryTransitionCallback);
}

当我想在蓝图中调用此函数时,我传递给该函数的类型是如下定义的动态委托

DECLARE_DYNAMIC_DELEGATE_OneParam(FQueryTransition, UFSM_Transition*, self);

newTransition 变量的定义如下

DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FQueryTransition, UFSM_Transition*, self);

有人对如何实现这一目标有任何指示吗?它可以很好地进行编译,但是在蓝图中使用任何功能时,都会错误地指出事件的定义不再匹配。完整细节在下面的屏幕截图中。

enter image description here

0 个答案:

没有答案