I want my steering wheel to be like a real one and so I’ve made it so that you can rotate it left or right but I want to be able to reset the rotation of the wheel once the user has stopped turning the wheel, and I assume I’d need some kind of variable to store the amount of rotation of the wheel, but I don’t know how.
Anyways, here’s my code so far:
using UnityEngine;
using System.Collections;
public class Wheel : MonoBehaviour {
public int turnSpeed;
public GameObject wheel;
void Update ()
{
if(Input.GetKey (KeyCode.A))
{
wheel.transform.Rotate(-Vector3.up * Time.deltaTime * turnSpeed);
}
if(Input.GetKey (KeyCode.D))
{
wheel.transform.Rotate(Vector3.up * Time.deltaTime * turnSpeed);
}
}
}
Just store the default rotation of the wheel at start to something like:
float rotations = 0;
Quaternion defaultRotation;
void Start()
{
defaultRotation = wheel.transform.localRotation;
}
then you can rotate it back like this:
void Update()
{
if(Input.GetKey (KeyCode.A))
{
wheel.transform.Rotate(-Vector3.up * Time.deltaTime * turnSpeed);
rotations -= turnSpeed;
}
else if(Input.GetKey (KeyCode.D))
{
wheel.transform.Rotate(Vector3.up * Time.deltaTime * turnSpeed);
rotations += turnSpeed;
}
...
else //rotate to default
{
if (rotations < -1)
{
wheel.transform.Rotate(Vector3.up * Time.deltaTime * turnSpeed);
rotations += turnSpeed;
}
else if (rotations > 1)
{
wheel.transform.Rotate(-Vector3.up * Time.deltaTime * turnSpeed);
rotations -= turnSpeed;
}
else if (rotations != 0)
{
wheel.transform.localRotation = defaultRotation;
rotations = 0;
}
}
}
I think this should do it. There may be some inaccuracy with the floats so you can compare the rotations to 1 and -1 and you can just set the wheel to a default rotation. If you care about that 1 degree you need to do different checks though .
Note: if you don’t really need to use the wheel’s gameobject anywhere, store it’s Transform instead. (Or if you need it in just a few cases you can still access it as wheel.gameobject). This would be easier on the processor as it doesn’t need to access the transform every frame.
How to make a functional car steering wheel for a parking game.
#Unity 3D #car control for parking game with #steering wheel with free script.
Realistic car control with steering wheel UI to control car in unity game.