Rigidbody 2D has velocity but isn't moving after Unity 5 upgrade

I want the player to have a speed equal to that of the screen scroll rate. I have a rigidbody2d whose velocity parameter I set directly every Update so the player moves along with the screen. In 4.6 this was working no problem but after upgrading to 5 for some reason the player stays still even though according to the log it still has velocity.

If I use AddForce in a FixedUpdate the player moves but the rigidbody2d.velocity parameter still says (0,0) so I can’t compare it to the max velocity. Also, the whole game was coded so far just directly changing velocity so I’d like to keep that if possible.

Any ideas on what could be the problem? Or if this can’t be fixed is there an easy way to use AddForce to result in a constant velocity?

void Update(){
     //set the base player speed to the screen scroll rate
        		float xSpeed = scrollRate;
        		Vector2 newSpeed = GetComponent<Rigidbody2D>().velocity;
        		newSpeed.x = xSpeed;
        //set the player's speed
        		//GetComponent<Rigidbody2D>().AddForce(newSpeed, ForceMode2D.Force);
        		GetComponent<Rigidbody2D> ().velocity = newSpeed;
        		print ("speed set:" + newSpeed);
        		print ("speed act:" + GetComponent<Rigidbody2D>().velocity);


Here’s the code in Fixed Update:

void FixedUpdate() {
		//set the base player speed to the screen scroll rate
		float xSpeed = sm.realScrollRate;
		Vector2 currentSpeed = GetComponent<Rigidbody2D>().velocity;

		//set the player's speed
		if(currentSpeed.x < xSpeed)
			GetComponent<Rigidbody2D>().AddForce(Vector2.right * 250f, ForceMode2D.Force);


I have Unity 4.6 still on my PC and loaded a backup of my project and the player runs just fine when directly setting the velocity in Update().

Does anyone know what was changed in Unity 5 that would make this no longer function?

Looks like the problem is that with the upgrade to Unity 5 all Animator components had the “Apply Root Motion” option enabled which I believe makes it so that the object moves according to it’s animation rather than according to physics. Disabling this option allows the object to be manipulated by physics properly.

If I am misunderstanding the Root Motion concept I would appreciate any further explanation.

I had the same problem but also wanted to keep root motion on and turned out that problem was with Update mode and not root motion. Set Update mode to normal and you will be fine.
If can’t do that then you will need to set root motion on and off dynamically.