Ваше заявление else
относится только к вашему окончательному заявлению if
. Вероятно, происходит то, что одно из ваших первых шести if
утверждений является истинным, и тогда ваш Condition
параметр анимации устанавливается равным 1. Но , так как ваш последний оператор if
, если ложно, else
Блок также выполняется, поэтому Condition
возвращается в ноль в течение той же итерации игрового цикла.
Измените все свои средние if
утверждения на else if
. Должно быть так:
if (/* condition 1 */)
{
anim.SetInteger("Condition", 1);
// transform = ...
}
else if (/* condition 2 */)
{
anim.SetInteger("Condition", 1);
// transform = ...
}
else if (/* condition 3 */)
{
anim.SetInteger("Condition", 1);
// transform = ...
}
else
{
anim.SetInteger("Condition", 0);
horizontal = 0;
vertical = 0;
}