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

如何解决Unity/C#中出现的Invalid Expression Term '='错误?

问题原因

C# 语法中没有 === 运算符,该运算符是 JavaScript 等语言的严格相等判断语法,你代码中两处 currentlydown === false、currentlydown === true 的写法不符合 C# 规范,就是触发 Invalid Expression Term "=" 报错的直接原因。

修正后的代码

bool currentlydown;
// further up the script
void Start() {
    currentlydown = false;
}
// later up the script
void Update() {
    if ((Input.GetKeyDown("W") || Input.GetKeyDown("A") || Input.GetKeyDown("S") || Input.GetKeyDown("D")) && currentlydown == false) {
        anim.SetBool("Walking", true);
        currentlydown = true;
    } else if (!(Input.GetKeyDown("W") || Input.GetKeyDown("A") || Input.GetKeyDown("S") || Input.GetKeyDown("D")) && currentlydown == true){
        anim.SetBool("Walking", false);
        currentlydown = false;
    }
}

可选优化建议

因为 currentlydown 本身就是布尔类型,不需要显式和 true/false 做相等判断,可以简化写法:

  • 把 currentlydown == false 替换为 !currentlydown
  • 把 currentlydown == true 替换为 currentlydown

简化后的判断逻辑如下:

if ((Input.GetKeyDown("W") || Input.GetKeyDown("A") || Input.GetKeyDown("S") || Input.GetKeyDown("D")) && !currentlydown) {
    anim.SetBool("Walking", true);
    currentlydown = true;
} else if (!(Input.GetKeyDown("W") || Input.GetKeyDown("A") || Input.GetKeyDown("S") || Input.GetKeyDown("D")) && currentlydown){
    anim.SetBool("Walking", false);
    currentlydown = false;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:24:03