当前位置:   article > 正文

[UE4]c++访问蓝图函数,及动态访问函数的方法_c++动态调用蓝图方法callfunctionbynamewitharguments,根据str调…

c++动态调用蓝图方法callfunctionbynamewitharguments,根据str调…

void AMyCharacter::CallFuntionWhitString(AActor* InActor, FString FunCName)
{
    FName FunFName = FName(*FunCName);
    UFunction* p_Func = InActor->FindFunction(FunFName);
    if (p_Func == NULL) return;
    InActor->ProcessEvent(p_Func, NULL);
}
 

 

有几个注意点:

1.看用法也知道必须继承自AActor类

2.必须在需要动态访问的函数前加UFUNCTION

3.比较方便的是,蓝图里面定义的方法也可以这样访问到

------------------------------------------------------------------------------------

 

C++调用蓝图函数

首先创建C++为基类,蓝图继承后创建一个函数Test

#include "OutputDevice.h"

FString cmd = FString::Printf(TEXT("BB CD"));

//BB函数名,CD参数

FOutputDeviceDebug device;
CallFunctionByNameWithArguments(*cmd, device, NULL, true);

蓝图重载C++函数(可以在C++中其他位置调用一个目前没有任何功能的函数(事件),而该函数的具体实现交给蓝图实现)

UFUNCTION(BlueprintImplementableEvent)       

void OnTest(); 

在蓝图中Add Event,找到对应的函数名,创建后即可实现具体逻辑

然后也可以在自己的C++代码中调用该方法

void MyActor::OnPressed()
{
OnTest();
}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/127218
推荐阅读
相关标签
  

闽ICP备14008679号