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
相关产品推荐
相关产品推荐

