我试图在一个简单的统一游戏中设置玩家回合,但是我的玩家回合布尔值(这是一个两人游戏)似乎并没有改变。稍后,在我的统一脚本中,播放器转布尔的值对于代码很重要,因此是值得依赖的,但是无论我进行什么更改,它都会固定为一个值。我已经搜索了答案,但没有找到适合我的情况的答案,因此我将在此处转储我的问题。

代码如下:

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


非常感谢您的帮助。

最佳答案

问题是您实际上在这里做一个作业:

if (TurnP1 = true)


它与:

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


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

if (TurnP1 == true)


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

TurnP1 = !TurnP1;

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

09-08 09:31