Петля
A while
не имеет части else
.Блок while
выполняется в цикле;как только условие равно false
, цикл заканчивается и выполнение продолжается с оператором после цикла, нет никакой причины / необходимости помещать туда else
.
Но вваш случай, вы, вероятно, не хотите цикл вообще.Я полагаю, ваш триггер срабатывает при каждом столкновении.Таким образом, вы действительно имели в виду условие if
, когда ветвь else
полностью в порядке.
Кроме того, я думаю, вы либо хотели Health--
уменьшить здоровье, или вы хотели Health < 3
для подсчета коллизий (и, возможно, переименования переменной в CollisionCount
или что-то подобное?).
Итак, ваш код должен быть
void OnTriggerEnter(Collider other)
{
if (Health > 0)
{
Health--;
Debug.Log(Health);
}
else
{
GameOver();
}
}