我想用相同的参数反映调用函数而不用手动复制params(以后这将是宏,这将是自动的)。
UFUNCTION()
void PleaseRespawnMe(FName className)
{
uint64 _frame; // Here is stack pointer?
UFunction* func = GetController()->ServerCheatManager->FindFunction("PleaseRespawnMe"); // function with same name
void* startStack = (void*)(&_frame - func->ParmsSize); // Start stack is pointer to first variable minus params size?
GetController()->ServerCheatManager->ProcessEvent(func, startStack); // calling using pointer of first argument
}
但是&_frame
指针离&className
太远了。是否有使用局部变量地址获取args指针的解决方案?
P.S。这是虚幻引擎4框架(按名称调用函数是虚幻的反射系统)。
答案 0 :(得分:0)
我通过搜索FindFunction(
检查了代码,发现了这个:for (TFieldIterator<UProperty>
,我认为这就是你想要的。
我用UFUNCTION
测试了它,迭代器运行输入参数然后返回值。
我建议您搜索for (TFieldIterator<UProperty>
或for (TFieldIterator<UProperty> It(Function);
以查看用例,并注意属性标记,这有助于过滤您正在寻找的特定属性。