Поскольку ваш кодовый блок RightPressed перекрывается кодовым блоком LeftPressed,
, в принципе, если вы будете переворачиваться вот так
if (LeftPressed)
anim.SetFloat("speed", -0.1f);
else
anim.SetFloat("speed", 0.0f);
if (RightPressed)
anim.SetFloat("speed", 0.1f);
else
anim.SetFloat("speed", 0.0f);
, вы заметите, что ваша проблема решена, выиспользуя в обоих случаях логическое значение, которое должно быть либо ложным, либо истинным, а когда значение LeftPressed равно false, вы все равно обновляете скорость анимации до 0,0f, что переопределяет то, что было установлено в RightPressed, и вам нужно изменитькак вы организовали свой код
if (LeftPressed)
anim.SetFloat("speed", -0.1f);
if (RightPressed)
anim.SetFloat("speed", 0.1f);
if ((!LeftPressed && !RightPressed) || (LeftPressed && RightPressed))
anim.SetFloat("speed", 0.0f);
, это будет работать лучше, но это не очень хороший способ сделать это, вы должны синхронизировать анимацию с фактической скоростью вашего твердого тела / преобразования, чтобы убедиться, что вы нене должно быть рассинхронизации между движением объекта и анимацией