【发布时间】:2021-11-01 20:04:34
【问题描述】:
我的控制器类中有一个方法,我想将该方法存储在一个 TFunction 对象中。我试过使用:
TFunction<void ()> FuncPtr{&PlayerController::ClassMethod};
它不起作用。
我的函数签名是:
void ClassMethod();
【问题讨论】:
-
如果
ClassMethod()不是static,那么TFunction将需要一个PlayerController对象实例来调用ClassMethod()。但是您没有将这样的对象分配给TFunction。TFunction的设计类似于 C++ 的std::function,在 C++ 中,您可以使用std::bind()或 lambda 将对象实例绑定到std::function。不确定 Unreal 的等价物。 -
正如 Remy 所指出的,您将绑定该类的一个实例。 This 覆盖了很多领域。
标签: c++ unreal-engine4