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,
You can learn about ackerman steering from here:
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!