Unity & C# - car going a little bit unsmooth on ramp
I am making a racing game. When the car I made is going up on a ramp, it becomes a bit jittery. Don't think it's the camera issue as the game looks smooth on plain grounds and when going down a ramp. I followed this tutorial:https://www.youtube.com/watch?v=cqATTzJmFDY&list=PLllUqr_Vxwvto-j8J-Fk2XmjQhn2PcwlZ∈dex=2
I noticed that in this tutorial, the author's final outcome is also a bit jittery on ramps. This is the code:
private void Start()
{
sphereRb.transform.parent = null;
}
private void Update()
{
speedInput = 0;
if (Input.GetAxis("Vertical") > 0)
{
GetInputForMoving(forwardAccel);
}
else if (Input.GetAxis("Vertical") < 0)
{
GetInputForMoving(reverseAccel);
}
turnInput = Input.GetAxis("Horizontal");
if (grounded)
{
Turning();
}
SetWheelsRotation();
transform.position = sphereRb.transform.position;
}
void GetInputForMoving(float directionAccel)
{
speedInput = Input.GetAxis("Vertical") * directionAccel * multiplier;
}
void Turning()
{
transform.rotation = Quaternion.Euler(transform.rotation.eulerAngles + new Vector3(0f, turnInput * turnStrength * Time.deltaTime, 0f));
}
void SetWheelsRotation()
{
leftFrontWheel.localRotation = Quaternion.Euler(leftFrontWheel.localRotation.eulerAngles.x, (turnInput * maxWheelTurn) - 180, leftFrontWheel.localRotation.eulerAngles.z);
rightFrontWheel.localRotation = Quaternion.Euler(rightFrontWheel.localRotation.eulerAngles.x, (turnInput * maxWheelTurn), rightFrontWheel.localRotation.eulerAngles.z);
}
private void FixedUpdate()
{
grounded = false;
RaycastHit hit;
//if hits ground
if (Physics.Raycast(groundRayPoint.position, -transform.up, out hit, groundRayLength, whatisGround))
{
grounded = true;
transform.rotation = Quaternion.FromToRotation(transform.up, hit.normal) * transform.rotation;
}
if (grounded)
{
Moving();
}
else
{
Dropping();
}
}
void Moving()
{
sphereRb.drag = dragOnGround;
if (Mathf.Abs(speedInput) > 0)
{
sphereRb.AddForce(transform.forward * speedInput);
}
}
void Dropping()
{
sphereRb.drag = 0.1f;
sphereRb.AddForce(Vector3.up * -gravityForce * 100);
}
Please help I am really struggling. Sorry for my English, thanks in advance!
Your answer
Follow this Question
Related Questions
Race Positioning system 0 Answers
Best way to stop a car after a finish line? 1 Answer
Hinge Joint motor not effecting joint 0 Answers
how to make my character controller stick to a surface? 0 Answers
How can we simulate VTEC ( yea the Honda Civic VTEC) ? 0 Answers