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

Unity 2D玩家移动代码报错:提示需逗号但不知原因

问题分析与解决

你的报错完全是因为错误引用了KeyCode枚举成员,具体在代码的第51行和第54行:

if(Input.GetKeyDown(KeyCode."W") && extraJumps > 0){
// 以及
} else if(Input.GetKeyDown(KeyCode."w") && extraJumps == 0 && isGrounded == true){

错误原因

KeyCode是Unity提供的枚举类型,引用枚举里的按键成员时,直接写KeyCode.W、KeyCode.w即可,不需要给按键名加双引号。你加了引号后,编译器无法识别这是合法的枚举成员,因此抛出Identifier expected和Syntax error, ',' expected的语法错误。

修正后的代码片段

把Update方法里的两行按键判断代码修改为:

void Update()
{
    if(isGrounded == true){
         extraJumps = extraJumpsValue;
    }

    if(Input.GetKeyDown(KeyCode.W) && extraJumps > 0){
        rb.velocity = Vector2.up * jumpForce;
        extraJumps--;
    } else if(Input.GetKeyDown(KeyCode.w) && extraJumps == 0 && isGrounded == true){
        rb.velocity = Vector2.up * jumpForce;
    }
        
}

补充说明

其实KeyCode.W和KeyCode.w对应同一个物理按键,不需要区分大小写,你可以统一写成KeyCode.W来简化代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:57:27