[UE4]c++访问蓝图函数,及动态访问函数的方法

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();
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值