C# 如何检查两件事是否属实

C# 如何检查两件事是否属实,c#,game-development,C#,Game Development,我是编程新手。目前,我正在尝试使一些简单的东西,所以我正在重新创建经典游戏乒乓球学习。然而,我遇到了这个问题。玩家控制器工作正常,但按W和S时,我不希望玩家移动。请帮忙 if(Input.GetKey(KeyCode.W)) & Input.GetKey(KeyCode.S){ player_one.GetComponent<Rigidbody2D>().velocity = new Vector2(0f, 0f); } if(Input.GetK

我是编程新手。目前,我正在尝试使一些简单的东西,所以我正在重新创建经典游戏乒乓球学习。然而,我遇到了这个问题。玩家控制器工作正常,但按W和S时,我不希望玩家移动。请帮忙

 if(Input.GetKey(KeyCode.W)) & Input.GetKey(KeyCode.S){
        player_one.GetComponent<Rigidbody2D>().velocity = new Vector2(0f, 0f);
    }
if(Input.GetKey(KeyCode.W))&Input.GetKey(KeyCode.S){
player_one.GetComponent().velocity=新向量2(0f,0f);
}

逻辑运算符与决策语句中使用的不同。您需要
&&

这:

if(Input.GetKey(KeyCode.W))&Input.GetKey(KeyCode.S){
player_one.GetComponent().velocity=新向量2(0f,0f);
}
应该是这样的:

if(Input.GetKey(KeyCode.W) && Input.GetKey(KeyCode.S)){
    player_one.GetComponent<Rigidbody2D>().velocity = new Vector2(0f, 0f);
}
if(Input.GetKey(KeyCode.W)和&Input.GetKey(KeyCode.S)){
player_one.GetComponent().velocity=新向量2(0f,0f);
}

在您的示例中,您在包含第二个条件之前关闭了决策括号。

and逻辑运算符为
&
&
&
&
。他们做不同的事情。当写&&I时,除了错误的运算符(
&&&
是正确的)之外,还会出现一个错误,说“无效的表达式项”&&&&',你把
if
表达式中的偏执搞乱了。。。这就是为什么编译器不理解“表达式项”…@sammieeee“我得到一个错误,说“无效的表达式项”&&“…这是因为您在错误的位置有一个
。您过早地关闭了
if
语句
if(Input.GetKey(KeyCode.W))
-最后一个
这里是
if
的结尾。需要在
{
这样一切都是
if
的一部分。您的IDE应该能够向您显示哪些左括号和右括号是成对的……请密切注意。操作符不是问题所在,括号是。与
&
&
之间的区别在于
&
将计算正确的ide,即使左侧的计算结果为
false
,而
&&
是一个“短路”操作符,如果右侧的计算结果不会改变(即左侧为
false
),它也会忽略右侧。
if(Input.GetKey(KeyCode.W) && Input.GetKey(KeyCode.S)){
    player_one.GetComponent<Rigidbody2D>().velocity = new Vector2(0f, 0f);
}