I am working on a scene with a character and a platform with a stairs. Character must move up and down of the stairs and jump from the platform:

I move character by virtual d-pad. I am looking for a correct way to move a character. Now I have two ways, each has its advantages and disadvantages:
First way: ray test. This way works perfect: I can move character up and down of the stairs, but if I have a lot of objects near the pad, and I want to jump I need to do a lot of ray tests.
Second way: move physics body of the character. Using this way I couldn't understand how to move character down of the stairs. Each time it looks like a jump over the stairs.
So what is the correct way to move a character over terrain with different height?