Hello, I am making a platformer 2d with slopes and I am trying to make that my character could descend slopes. I am following this tutorial: But I have a problem, I am making this with RigidBody2d. I tried to adapt this method with a RibigBody2d but I cannot make it work. This is how I move my player: Code (CSharp): h = Input.GetAxisRaw("Horizontal"); transformada.position = transformada.position + new Vector3(velocidad * h * Time.deltaTime, 0, 0); Here it is the code I tried to adapt: Code (CSharp): Debug.DrawRay(transform.position, new Vector2(0, -1.5f),Color.red); hit = Physics2D.Raycast(transform.position, new Vector2(0, -1.5f), 1.5f,layerRampa); if (hit) { float anguloRampa = Vector2.Angle(hit.normal,Vector2.up); if (anguloRampa>10) { if (Mathf.Sign(hit.normal.x) == transform.localScale.x) { if (hit.distance-distancia <= Mathf.Tan(anguloRampa*Mathf.Deg2Rad) * Mathf.Abs(myBody.velocity.x)) { float movimiento = Mathf.Abs(myBody.velocity.x); float movimientoDescendenteY = Mathf.Sin(anguloRampa * Mathf.Deg2Rad) * movimiento; myBody.velocity = new Vector2(Mathf.Cos(anguloRampa * Mathf.Deg2Rad) * movimiento * Mathf.Sign(myBody.velocity.x), myBody.velocity.y); myBody.velocity = new Vector2(myBody.velocity.x, movimientoDescendenteY); } } } } Thank you for your time