Автор описал решение: "Всё починил, написал transform.rotation = Quaternion.LookRotation(new Vector3(_joystick.Horizontal* _moveSpeed, 0, _joystick.Vertical * _moveSpeed));", с которым я не согласен. velocity лучше не менять руками в таких ситуациях, достаточно использовать MovePosition. Есть такой вариант, что автор использовал в FixedUpdate прямую установку скорости, а Rigidbody прибавлял к скорости реакцию поверхности с силой трения сразу после этого. С MovePosition ты не игнорируешь работу модуля физики, а говоришь ему "Передвинь пожалуйста персонажа туда"