Вероятно, потому что вы дважды проверяете
if( ... && movespeed > 0)
Для ключа A
вы, вероятно, хотели
if(Input.GetKey(KeyCode.A) && movespeed < 0)
Так как в любом случае только одно условие может быть истинным за раз. сделает это if-else if
, чтобы избежать лишних проверок. Также сначала проверьте значение movespeed
- он дешевле, чем Input.GetKey
if (movespeed > 0 && Input.GetKey(KeyCode.D))
{
transform.rotation = Quaternion.Euler(rot);
}
else if (movespeed < 0 && Input.GetKey(KeyCode.A))
{
transform.rotation = Quaternion.Euler(rot2);
}