c++ - 如何将方法指针分配给 TFunction<>?
问题描述
我的控制器类中有一个方法,我想将该方法存储在 TFunction 对象中。我试过用:
TFunction<void ()> FuncPtr{&PlayerController::ClassMethod};
它不起作用。我的函数签名是:
void ClassMethod();
解决方案
//Let's say so:
.h
UFunction* ExecuteFunction;
UFUNCTION()
void ChangeState(FName NextState)
UFUNCTION()
void GlobalState_One()
UFUNCTION()
void GlobalState_Two()
.cpp
void ChangeState(FName NextState)
{
FName NameFunction = FName(FString("GlobalState_") + NextState.ToString());
ExecuteFunction = FindFunction(NameFunction);
}
//Place of call
if (ExecuteFunction != nullptr)
ProcessEvent(ExecuteFunction, nullptr);
//
//...
ChangeState("One");
//...
void GlobalState_One()
{
}
void GlobalState_Two()
{
}
推荐阅读
- sql - 如何在包括 NULL 在内的多对多关系中使用 NOT IN 进行查询
- java - Intellij JavaFX 设置 - 无法创建 Java 虚拟机
- python-3.x - 从 csv 文件打印数据
- c# - 从 Angular 应用程序使用 WCF 服务
- c - 使用 strtok() 时出现硬故障
- django - 不存在于 /admin/
- java - 表 'DBNAME.hibernate_sequence' 不存在用于继承映射
- python - auth_registrations_mapping 错误:在具有管理员访问权限的 cmd 上 pip install twilio 时无法创建
- spring-boot - 如何添加多个消费者组?
- java - 使用 Lettuce 时重试 Redis 命令是否安全?