c++ - 为什么我没有收到 OnClicked 函数的响应?

标签 c++ unreal-engine4

我正在尝试将一个函数绑定(bind)到 onclicked 上:

OnClicked.AddDynamic(this, &AChessPiece::OnClick); // <- In AChessPiece's constructor

我已经在 ChessPiece.h 中声明了 OnClick

UFUNCTION()
void OnClick(AActor* TouchedActor, FKey ButtonPressed);

在ChessPiece.cpp中定义

void AChessPiece::OnClick(AActor* TouchedActor, FKey ButtonPressed)
{
    UE_LOG(LogTemp, Warning, TEXT("Clicked"));
}

当我在编辑器中玩游戏并点击对象时,我没有任何反应。我已确保在播放器 Controller 类中启用了所有鼠标事件和功能。在某一时刻它正在工作,但后来停止了。编辑器、游戏模式等是否有其他设置会影响对象的“点击能力”?

最佳答案

不要在构造函数中绑定(bind)它。你没有完全初始化的对象,所以它没有意义。覆盖 BeginPlay() 方法并在那里调用该绑定(bind)。

关于c++ - 为什么我没有收到 OnClicked 函数的响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44620970/

相关文章:

c++ - 使用最多 3 个命令读取输入命令

c++ - BMP文件行填充问题

c++ - 对 `boost::iostreams::mapped_file_source::mapped_file_source()' 的 undefined reference

c++ - 如何创建自定义 C++ 类以与蓝图一起使用

c++ - vector 投影 - 确保我的车辆只能在地板/表面上加速

c++ - 仅限虚幻引擎 4 代码

c++ - 在 C++ 中,我们无法在没有初始化的情况下声明引用。为什么?

C++ AMP 适用于求逆、QR 分解的矩阵库

ios - 我的 UE4 演示应用程序在启动后崩溃

c++ - 更好的类设计