布尔值始终相同

时间:2015-11-11 03:12:54

标签: c# unity3d boolean

我正试图在一个简单的统一游戏中设置玩家轮流,但是我的玩家转弯布局(这是一个双人游戏)似乎根本没有改变。播放器转向布尔值对于稍后在我的统一脚本中的代码很重要,因此是依赖的,但无论我做出什么改变,它都会粘在一个值上。我已经搜索了一个答案但找不到适合我的上下文的答案,所以我将把问题转移到这里。

代码如下:

if (TurnP1 = true)
{ 
    TurnP1 = false;
}
else
{
    TurnP1 = true;  
}
DropPiece(columnNumber, TurnP1);
TestForWinner();
TestForDraw();

非常感谢帮助。

2 个答案:

答案 0 :(得分:4)

问题在于你实际上在做一项任务:

if (TurnP1 = true)

与以下内容相同:

TurnP1 = true;
if (TurnP1) {
    TurnP1 = false;
} else {
    TurnP1 = true;
}

此条件始终为true 您需要将此代码更改为

if (TurnP1 == true)

但是,所有这些代码行都可以用否定代替:

TurnP1 = !TurnP1;

DropPiece(columnNumber, TurnP1);
TestForWinner();
TestForDraw();

答案 1 :(得分:1)

TurnP1 = true

是作业,您需要if (TurnP1)来检查TurnP1是否为真,或者只是

DropPiece(columnNumber, !TurnP1);
TestForWinner();
TestForDraw();