- Home /
Hi how do I rotate an game object, like a car?
I'm kind of new to this unity thing I've made my own like rocket ship type model, and I want it so when I press A and D it rotates the object not move it side to side, Any suggestions? The script Im using for moving right now only moves it left/right forward and back with no rotation. Any help would be appreciated thank you :)! Basically some type of steering so its more realistic, :)
Answer by toromano · Apr 27, 2016 at 06:49 AM
You can learn about ackerman steering from here: https://en.wikipedia.org/wiki/Ackermann_steering_geometry
I attached a dummy pivot gameobject for rotation since rotation should be around back wheel center. I also added sample script for steering. Just add to an cube and test.
using UnityEngine;
using System.Collections;
public class SteeringTest : MonoBehaviour
{
public float backWheelDistance = 1;
private GameObject dummyPivot;
float turningCenterDistance = 5;
void Start()
{
dummyPivot = new GameObject("dummyParent");
dummyPivot.transform.parent = this.transform;
dummyPivot.transform.localRotation = Quaternion.identity;
dummyPivot.transform.localPosition = Vector3.zero;
dummyPivot.transform.parent = null;
this.transform.parent = dummyPivot.transform;
this.transform.localPosition = new Vector3(0, 0, backWheelDistance);
}
void Update()
{
if (Input.GetKey("left"))
{
Vector3 turningPivotPoint = dummyPivot.transform.TransformPoint(new Vector3(-turningCenterDistance, 0, 0));
dummyPivot.transform.RotateAround(turningPivotPoint, -Vector3.up, 20 * Time.deltaTime);
}
else if (Input.GetKey("right"))
{
Vector3 turningPivotPoint = dummyPivot.transform.TransformPoint(new Vector3(turningCenterDistance, 0, 0));
dummyPivot.transform.RotateAround(turningPivotPoint, Vector3.up, 20 * Time.deltaTime);
}
}
}
Hope that helps!
[1]: /storage/temp/68924-488px-ackermann-turningsvg.png
Thank you for your help I just have a question! When I turn left or right when its applied the object rotates but it also goes backwards? Did I somehow mess up the script in the process of applying it to the game object
Thank you so much! I'll let you know if I have any problems :)
I know this is like 3 years old but do you remember what your train of thought was in making the dummyPivot the parent transform after making the cube the transform? I don't completely understand how this script works.