- Home /
Question by
N1warhead · Oct 19, 2015 at 02:42 PM ·
wheelcolliderwheelwheel colliders
Wheel rotate issue
Hey guys, I'm curious about what's going with this. Doesn't make any sense to me at all.
3 of 4 wheels work as expected, but this one wheel I don't even know how to explain what's going on with it other than rotation issue.
Here is a video https://www.youtube.com/watch?v=6sOXxama-VM&feature=youtu.be
Here is a photo of my Inspector Setup for Wheel Colliders, etc.
Here is the code I used. Perhaps you can see something I did wrong.
//Player Movement stuff.
public float speed;
public float rotSpeed;
public float brakeForce;
public Rigidbody myRigid;
// Used for Camera Rotations.
public Transform myCamera;
public Transform myPlayer;
public float rotASpeed;
// Wheel Colliders
public WheelCollider fl_Wheel;
public WheelCollider fr_Wheel;
public WheelCollider bl_Wheel;
public WheelCollider br_Wheel;
// The Mesh wheels
public Transform fLeft;
public Transform fRight;
public Transform bLeft;
public Transform bRight;
// Center of Mass and Custom Gravity
public Vector3 com;
public Transform myCOM;
public float customGravity;
void Start(){
com = myCOM.localPosition;
myRigid.centerOfMass = com;
}
void Update(){
float v = Input.GetAxis ("Vertical") * speed;
float h = Input.GetAxis ("Horizontal") * rotSpeed;
fl_Wheel.steerAngle = h;
fr_Wheel.steerAngle = h;
//fl_Wheel.motorTorque = v;
//fr_Wheel.motorTorque = v;
bl_Wheel.motorTorque = v;
br_Wheel.motorTorque = v;
// Wheel Rotations
fLeft.localEulerAngles = new Vector3 (fLeft.localEulerAngles.x, fl_Wheel.steerAngle - fLeft.localEulerAngles.z, fLeft.localEulerAngles.z);
fRight.localEulerAngles = new Vector3 (fRight.localEulerAngles.x, fr_Wheel.steerAngle - fRight.localEulerAngles.z, fRight.localPosition.z);
fLeft.Rotate (fl_Wheel.rpm / 60 * 360 * Time.deltaTime, 0, 0);
fRight.Rotate (fr_Wheel.rpm / 60 * 360 * Time.deltaTime, 0, 0);
bLeft.Rotate (bl_Wheel.rpm / 60 * 360 * Time.deltaTime, 0, 0);
bRight.Rotate (br_Wheel.rpm / 60 * 360 * Time.deltaTime, 0, 0);
if(Input.GetKey(KeyCode.Space)){
bl_Wheel.brakeTorque = brakeForce;
br_Wheel.brakeTorque = brakeForce;
fl_Wheel.brakeTorque = brakeForce;
fr_Wheel.brakeTorque = brakeForce;
}
if(Input.GetKeyUp(KeyCode.Space)){
bl_Wheel.brakeTorque = 0;
br_Wheel.brakeTorque = 0;
fl_Wheel.brakeTorque = 0;
fr_Wheel.brakeTorque = 0;
}
}
void FixedUpdate () {
myRigid.AddRelativeForce (Vector3.down * customGravity);
}
void LateUpdate(){
if (Input.GetKey (KeyCode.Q)) {
myCamera.RotateAround (myPlayer.position, Vector3.up, rotASpeed * Time.deltaTime);
}
if (Input.GetKey (KeyCode.E)) {
myCamera.RotateAround (myPlayer.position, -Vector3.up, rotASpeed * Time.deltaTime);
}
}
inspectorsetup.jpg
(42.8 kB)
Comment
Your answer
Follow this Question
Related Questions
WheelCollider invisible 0 Answers
Wheel is wrong rotation 0 Answers
How to automatically stop car when fuel ends up ? 2 Answers
Creating a simple wheel 0 Answers
Weird wheel rotation 1 Answer