You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unreal 5.1使用EnhancedInputComponent时BindAction报错C2665的问题

问题原因分析

这个C2665错误的核心是函数参数类型不匹配:

  • UEnhancedInputComponent::BindAction 要求绑定的回调函数参数为 const FInputActionValue&(常量引用)
  • 你定义的Move函数参数却是 FInputActionValue&(非常量引用)

Unreal的Enhanced Input框架触发动作回调时,传递的是常量引用类型的输入值,你的函数签名无法接收该类型,导致编译器找不到匹配的重载版本,因此报错。

修复方法

只需将Move函数的参数改为常量引用即可:

声明部分修改:

void Move(const FInputActionValue& Value);

定义部分修改:

void ACryptRaiderCharacter::Move(const FInputActionValue& Value)
{
    const float DirectionValue = Value.Get<float>();
    if (Controller && DirectionValue != 0.f)
    {
        FVector Forward = GetActorForwardVector();
        AddMovementInput(Forward, DirectionValue);      
    }
}

修改后函数签名将与BindAction期望的回调类型匹配,编译器即可找到对应重载完成绑定。

内容的提问来源于stack exchange,提问作者zac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 17:35:09