Hi everyone, I'm trying to get some skatepark physics working ! I've disabled Gravity for rigidbodies and I wrote this script to ensure that the character is able to follow curves and so on. Code (CSharp): public LayerMask modules; EtatTest e; // this is the state, records whether or no the character touches the ground Rigidbody rb; // Use this for initialization void Start () { rb = GetComponent<Rigidbody>(); e = GetComponent <EtatTest>(); } // Update is called once per frame void Update () { rb.AddForce(-10*rb.mass*Vector3.up); if(!e.OnGround) { Ray ray = new Ray (transform.position, -transform.up); RaycastHit hit; if(Physics.Raycast(ray, out hit)) { Quaternion Rot = transform.rotation*Quaternion.FromToRotation(transform.up, hit.normal); transform.rotation = Quaternion.Lerp(transform.rotation, Rot, 5*Time.deltaTime); } } else { Ray ray = new Ray (transform.position, -transform.up); RaycastHit hit; if(Physics.Raycast(ray, out hit, modules)) { Quaternion Rot = transform.rotation*Quaternion.FromToRotation(transform.up, hit.normal); transform.rotation = Quaternion.Lerp(transform.rotation, Rot, 5*Time.deltaTime); } else if(Physics.Raycast(ray, out hit)) { Quaternion Rot = transform.rotation*Quaternion.FromToRotation(transform.up, Vector3.up); transform.rotation = Quaternion.Lerp(transform.rotation, Rot, 5*Time.deltaTime); } } } So far, the results aren't good. Any ideas ? Thanks !