Wall Walking / Vertical Climbing (+ Gravity!)

Essentially what I’m looking to do is similar to the way that the Aliens moved in the most recent Aliens vs Predator game from 2009. I want a center of gravity shift for a player controlled entity to change when it runs up against a surface, most likely with a particular tag such as ‘climbable’.

To be more specific, what I want to do is be able to climb a cylinder, be able to climb around the whole circumference of it, then have my center of gravity relocated once I reach the top by only using a tag.

What I also would like to know about rotational space in Unity is if there is a way to set a “default” rotation of gravity. What I would like is if I am climbing the cylinder that, if I jump, I will be pulled in the direction of “logical gravity”, meaning pulled down to the ground from the location I started. Since the character controller scripts I use often use a bool for “grounded”, would there be a way to say “If not grounded, then shift the gravity in this direction”?

Thanks for any help you can provide. If you think more specific information would help, I’d be happy to provide.