2D Platformer Controller

I’m currently developing on a 2D Platformer in Unity. And now I’m stuggling with the Character Controller. My Levels have a similar concept to those in Ori and the Blind Forest and I decided to make a similar kind of Movement.

  1. In general does Anybody have some Ideas how they achieved such Character Movement?

  2. Most Problems causes the Sliding along Walls. As in Ori the Walls are angular and not straight like in Mario. So if the Character slides down or climb up a Wall it has to follow the Shape of the Wall and not simply go straight up and down.

(For those unfamiliar with the Movement of Ori and the Blind Forest [here] (Ori and the Blind Forest PC 100% Walkthrough 09 (Spirit Caverns) Backtracking - YouTube) some Gameplay.)

EDIT: I misunderstood the question. I will leave this up so others can see the response below. It helped me better understand what the user is looking for.

I could be misunderstanding, but since you are controlling velocity manually, the following might work:

  1. Apply a custom PhysicsMaterial2D. Create one in your Assets. Set friction to 0. Apply it to your ground colliders.

  2. Then combine that with a greater downward force while you are on the ground to keep you against the ground as you run over hills. Maybe that would have the effect you want? You might have to increase jump force to compensate.