Make Character slide along a surface in 2D sidescroller

Hi there. I am currently working on a 2D sidescroller using the scripts from the “Unity 2D Gameplay Tutorial”.
I managed to add some new features but I can’t really get a handle on this one.
I want the character to slide down surfaces marked as slopes.
I tried using a physic material and setting the friction to 0 but this doesn’t seem to work for character controllers.
Anyone an idea how I could implement this?

Many thanks

You have to manually implement sliding. There are a few scripts on the unify wiki such as this one that should do what you want.

For a really quick example, you could do some thing like, and it will be a little easier since you are doing a 2D game:

var slideSpeed : float;
var angleForSlide : float = 30;

private var cosSlideAngle : float;
private var moveDirection : Vector3;

function Start () {
     cosSlideAngle = Mathf.Cos(angleForSlide * Mathf.Deg2Rad);
}

function Update () {
     var isSliding = false;
     var hitInfo : RaycastHit;
     if(Physics.Raycast(transform.position, -Vector3.up , out hitInfo,  5) ) {
           var cosAngle = Vector3.Dot(Vector3.up, hit.normal);
           if(cosAngle <= cosSlideAngle) {
                 isSliding = true;
                 var moveSpeed = slideSpeed * (1 - cosAngle);
                 //The steeper the hill, the faster we slide.
                 moveDirection = new Vector3(hit.normal.x , -hit.normal.y , 0 );
                 moveDirection = moveDirection.normalized;
                 moveDirection *= moveSpeed;
           }
     }
    
    if(!isSliding) {
         //Do normal character motion.
    }
    yourCharacterController.Move(moveDirection * Time.deltaTime);
}

Its worth noting that I didn’t test this, and there are some circumstances that this would probably brake, but its just to give you an idea of ways to check the angle. If you look at the wiki script, you will see that they use Vector3.Angle() instead of the dot products for testing the slope. It’s a matter of what works best for you.