Visual Studio告诉我我的括号是不正确的,而是期望有一个括号。
我尝试查看Unity手册,但是我一定会误解它,因为我看不到自己在做什么错。
void OnTriggerEnter(Collider other)
{
while (Health > 3)
{
Health++;
Debug.Log(Health);
} // VS is telling me the issue is this bracket.
else
{
GameOver();
}
}
我正在尝试使代码以单数递增到三。玩家与对象碰撞三次后,将调用GameOver方法。
答案 0 :(得分:1)
while
循环没有else
部分。 while
块是循环执行的;只要条件为false
,循环就会结束,并且在循环后继续执行 语句,就没有理由/不需要将else
放在那里。
但是在您的情况下,您可能根本不需要循环。我猜您的触发器会在每次碰撞时触发。因此,您的意思确实是一个if
条件,其中else
分支是完全可以的。
此外,我想您要么想要Health--
来降低健康程度,要么 您想要Health < 3
来计算碰撞次数(并且可能将变量重命名为CollisionCount
或这样的吗?)。
因此,您的代码应该是
void OnTriggerEnter(Collider other)
{
if (Health > 0)
{
Health--;
Debug.Log(Health);
}
else
{
GameOver();
}
}