Почему персонаж передвигается рывками?
Что-то мне подсказывает, что вы забыли про Time.deltaTime. Просто напишите:
private void Update() 
    {
        rigidbody2D.velocity = new Vector2(1 * speed * Time.deltaTime, rigidbody2D.velocity.y);
    }
Помогло увеличение скорости до 300 и перенос в FixedUpdate