Can I adjust an individual character's momentum?

I have a fairly standard first-person controller, with forward movement speed 50. When I run and then stop pushing forward, the character has understandably built up quite a bit of momentum and keeps going for a while. However, I would like this character to be able to turn sharp corners, so I’d like to turn down the amount of momentum he has when he stops moving - or at least increase the rate of momentum drop off.

Is there a way to do this without changing the material he’s running on (ie, the friction)? I want the momentum falloff to be different for different characters, is why I’m asking. Is there a specific slider/input variable somewhere in the physics I can tweak? Or do I have to go into the character motor script and manually input the amount of slowdown as part of the forward movement script?

Momentum is just the mass of the object multiplied by its velocity. If you want to decrease momentum then you could either decrease the mass or decrease the magnitude of the velocity (the speed). If you decrease the mass it will be more susceptible to forces (will be blown around a lot when you add any force to it), so your best bet is probably to decrease the velocity.

In javascript you could right a function some thing like this:

var speed = 5.0;
var ridgedbody : RidgedBody;
function Start() // This is just to get the ridgedbody for latter use, no point in doing this every update, or every time this is called
{
     ridgedbody = gameObject.GetComponent(RidgedBody);
}

function SlowToVelocity()
{
     ridgedbody.velocity.normalized * speed;
}

That would slow it down, and hens decrease your momentum, you just call it every time you want to change your velocity to “speed”. Though this will be rather sudden, probably be better to change the “speed” variable based on what your velocity is now (give more of a gradual effect). Some thing like speed = ridgedbody.velocity.magnitude * .9; and then call your SlowToVelocity function. Maybe even use a lerp function or an animation curve if you wanted to control its slow down more graphically.

Or, depending on how your character controller works you could just add a force opposite of your direction (how it would happen in rl) would look as if a rocket slowed it down (except without the rocket). Some thing like this:

rigidbody.AddForce( -ridgedbody.velocity.normalized * SomeForceValue );