Поскольку обратный менеджер для объектов выбора choice_set
, вы должны установить source='choice_set'
для поля choices
:
class PollSerializer(serializers.ModelSerializer):
choices = ChoiceSerializer(many=True, read_only=True, required=False, source='choice_set')
Петля while
не имеет части else
. Блок while
выполняется в цикле; как только условие становится равным false
, цикл заканчивается, и выполнение продолжается с оператора после цикла, нет никакой причины / необходимости помещать else
туда.
Но в вашем случае вы, вероятно, вообще не хотите петли. Я полагаю, ваш триггер срабатывает при каждом столкновении. Таким образом, вы действительно имели в виду условие if
, где ветвь else
полностью в порядке.
Кроме того, я думаю, что вы либо хотели Health--
уменьшить здоровье, или вы хотели Health < 3
для подсчета столкновений (и, вероятно, переименовать переменную в CollisionCount
или что-то подобное?). [1115 ]
Итак, ваш код должен быть
void OnTriggerEnter(Collider other)
{
if (Health > 0)
{
Health--;
Debug.Log(Health);
}
else
{
GameOver();
}
}