That happens because you are overriding the vertical movement with the horizontal one.
You have to do as RiokuTheSlayer says. First find your movement vector, then apply it to rigidbody.MovePosition.
I’m just trying to keep everything clean, I don’t want all kinds of components and scripts lying around everywhere. I also get some personal satisfaction knowing that I scripted my own movement, simple as it may be.