Unity 5: Apply Root Motion not affecting "Y" in 2d

I used the new unity 5 feature to “Generated Root Motion Curves”.

Then I hit “play” and triggered the animation. The character in the X axis, but not the Y axis.

Next, I clicked “Debug” saw that “Keep Original Y” checkbox was set. I unchecked it. I played the animation again in-game. No change.

Halp. This is a 2d sidescroller project. I am trying to make an NPC “pull” itself up from a ledge hang. Looks great in Scene preview. Doesn’t work in-game. X only movement means he pulls into the wall then falls.

This NPC has no collision enabled.

I was able to solve this with some help from this post: http://mecwarriors.com/2014/08/18/scripting-root-motion/

Add this to your controller code:

private void OnAnimatorMove()
{
    rigidbody2d.velocity = animator.deltaPosition / Time.deltaTime;
}

It seems like Unit’s implementation of root motion in 2D ignores the animator’s deltaPosition.y, even though it knows it’s there.