Manipulating Gravity

Hi,

I want to still have gravity while walking on a surface that may or may not be up the right way.

for example I am walking on the roof and jump, I then land back on the roof as though it was the floor.

What would be the best way to do this ( and can it be done using unitys’ in-built physics system? )

You can use something like this:

Physics.gravity = new Vector3(x, x, x);

check out the ref here
http://unity3d.com/support/documentation/ScriptReference/Physics-gravity.html

Or you can Change object’s gravity to 0 and than add a Force(assuming your controller is a rigidbody).
This way only the one object will have different gravity as opposed to the entire scene.