c++中获取蓝图组件_通过UE4C++反射调用UE4蓝图函数

大家好,这节我们来讲解一下如何通过UE4C++调用任意的UE4蓝图函数。

其实用法很简单。

首先在蓝图里面建立如下的函数,我这边是在GameMode里面建立的:

然后我们在我们的CPP里面加入如下代码:

下面的代码中用到了元祖,如果不了解UE4元祖可以查看以下文章人宅:UE4 TTuple 使用技巧​zhuanlan.zhihu.com42c7d1b63c212800890e4c6020991b6a.png

粘贴如下代码:

template

void ImplementFunction(UClass* OuterClass, UFunction* Function, TTuple& OutParams, TArgs&&... Args)

{

void* FuncPramsStructAddr = (uint8*)FMemory_Alloca(Function->ParmsSize);

uint8* OutPramsByte = (uint8*)&OutParams;

TTuple InParams(Forward(Args)...);

uint8* InPramsByte = (uint8*)&InParams;

if (Function->HasAnyFunctionFlags(FUNC_Native))

{

FFrame Frame(nullptr, Function, &FuncPramsStructAddr, nullptr, Function->Children);

uint8* ReturnParams = nullptr;

//执行无字节码的函数

//注册虚拟机参数列表

FOutParmRec** LastOut = &Frame.OutParms;

for (TFieldIterator ParmIt(Function); ParmIt; ++ParmIt)

{

UProperty *Property = *ParmIt;

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
调用蓝图的自定义事件,需要在蓝图创建一个自定义事件,并将其公开为可调用函数。然后,在蓝图外部的其他蓝图蓝图实例,可以使用“执行自定义事件”节点来调用该事件。 以下是调用蓝图自定义事件的步骤: 1. 在蓝图创建自定义事件 在蓝图编辑器,选择要添加自定义事件的节点,然后在节点上右键单击并选择“添加自定义事件”。命名事件并添加所需的输入和输出参数。 2. 公开自定义事件 在蓝图编辑器,选择要公开自定义事件的节点,然后在节点上右键单击并选择“公开为函数”。这将使自定义事件可在蓝图外部调用。 3. 调用自定义事件 在蓝图外部的其他蓝图蓝图实例,使用“执行自定义事件”节点来调用该事件。将要调用蓝图和自定义事件名称作为节点的输入参数。 例如,假设您有一个名为“MyBlueprint”的蓝图,并且在其创建了一个名为“MyCustomEvent”的自定义事件。要从另一个蓝图调用此事件,可以按如下方式使用“执行自定义事件”节点: 1. 添加“执行自定义事件”节点到蓝图 2. 将“执行自定义事件”节点连接到要触发事件的目标蓝图 3. 在“执行自定义事件”节点的输入面板,选择要调用蓝图和自定义事件名称 4. 配置自定义事件的输入参数(如果有的话) 5. 触发“执行自定义事件”节点,以触发目标蓝图的自定义事件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值