Why moving characters laterally with addForce fails?

I am using the following code to move my character laterally:

// Get input
float move = Input.GetAxis ("Horizontal");

// Set speed
Vector2 _velocity = rigidbody2D.velocity;
_velocity.x = move * walkSpeed;
rigidbody2D.velocity = _velocity;

Which works just fine. I am using this code to handle jumping:

if (grounded && Input.GetKeyDown (KeyCode.Space)) {
    grounded = false;
    rigidbody2D.AddForce(new Vector2(0, jumpForce));
}

Which also works fine. So suddenly I thought, I could maybe do this to move the character laterally:

// Get input
float move = Input.GetAxis ("Horizontal");

// Set speed
rigidbody2D.AddForce(new Vector2(move * walkSpeed, 0));

But this does NOT work. The character remains in the same place always.

Could someone explain me the failure in my logic?

Probably a scale problem. velocity is simple – sets your speed to that many meters/second. AddForce is funny – it divides the speed by about 60 (it has to do with ForceMode. It assumes you’re going to be using it 60 times/second.) In your project, jumpSpeed is probably way more than walkSpeed (it really makes more sense to set velocity for a jump, anyway.)

Try cranking walkSpeed to 1000.