How to 'do stuff' to specific cross sections of 3D polygons

I’m designing a player controller as an experience building exercise and I’m running into the problem where when I jump I stick to walls of basic cubes while moving in air. I did some research and thought of two possible solutions.

  1. Turn off player movement while airborne. For design reasons I don’t want to do this.

  2. Apply a physics material to cubes with 0 friction.

The problem with 2) is I have to apply it to the surface which is problematic when I want the player to platform across the surfaces.

So my question is, is there any way to apply properties to one specific area of a 3D polygon? My thought is to apply a plane to the top of every cube, but that would be a messy and cumbersome solution. Any thoughts?

What I would do is track the y and the xz components separately. Stop the xz when they hit a wall, but allow y to continue unless you hit a floor. That way they won’t ‘stick’ so much as they’ll hit the wall and slide back down to the floor.