private void limitAngleAndVelocity() { carVelocity = GetComponent <Rigidbody>().velocity.magnitude; if (transform.rotation.eulerAngles.x > 180) { transform.rotation = Quaternion.Euler( Mathf.Clamp(transform.rotation.eulerAngles.x, 360 - maxTiltAngle, 360), transform.rotation.eulerAngles.y, transform.rotation.eulerAngles.z ); } else if (transform.rotation.eulerAngles.x < 180) { transform.rotation = Quaternion.Euler( Mathf.Clamp(transform.rotation.eulerAngles.x, 0, maxTiltAngle), transform.rotation.eulerAngles.y, transform.rotation.eulerAngles.z ); } if (transform.rotation.eulerAngles.z > 180) { transform.rotation = Quaternion.Euler( transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, Mathf.Clamp(transform.rotation.eulerAngles.z, 360 - maxTiltAngle, 360) ); } else if (transform.rotation.eulerAngles.z < 180) { transform.rotation = Quaternion.Euler( transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y, Mathf.Clamp(transform.rotation.eulerAngles.z, 0, maxTiltAngle) ); } if (rb.velocity.magnitude > status.getSpeed()) { //Debug.Log("slow down to v = " + status.getSpeed()); float slowDownRatio = rb.velocity.magnitude / (status.getSpeed()); rb.velocity /= slowDownRatio; } }