- Home /
Stop Wheel Colliders from flipping over
Hello, I have been making a car script and I am using the wheel colliders to do so. I have also got a rigid body attached to the car but, the problem is that when I steer the car left and right the car will just tip over and I can't stop it. Ive looked around for any help but I can't find something which works for my script. Any help would be nice!
Here's my script which I have for my car:
var handBrake : boolean = false;
var canDrive : boolean = false;
var player : Transform;
var car : Transform;
var seat : Transform;
var getOutPosition : Transform;
var wheelColFR : WheelCollider;
var wheelColFL : WheelCollider;
var wheelColRR : WheelCollider;
var wheelColRL : WheelCollider;
var fourWheelDrive : boolean = false;
var twoWheelDrive : boolean = true;
var moveSpeed : float = 20.0;
var turnSpeed : float = 15.0;
function Update(){
if(!canDrive){
/************************* ENABLE PLAYER MOVEMENT ***********************/
script = player.GetComponent(PlayerController);
script.enabled = true;
script2 = player.GetComponent(CharacterController);
script2.enabled = true;
script3 = player.GetComponent(CharacterMotor);
script3.enabled = true;
player.parent = null;
}
if(canDrive){
script = player.GetComponent(PlayerController);
script.enabled = false;
script2 = player.GetComponent(CharacterController);
script2.enabled = false;
script3 = player.GetComponent(CharacterMotor);
script3.enabled = false;
player.transform.position = seat.transform.position;
player.rotation = seat.rotation;
player.parent = seat.transform;
if(Input.GetKeyDown(KeyCode.RightShift)){
canDrive = false;
}
if(Input.GetKeyDown(KeyCode.Space)){
handBrake = !handBrake;
}
if(handBrake){
}
if(!handBrake){
CheckInput();
}
}else{
player.rotation = Quaternion.identity;
}
}
function InCar(check : int){
if(check == 1){
canDrive = true;
}
}
function CheckInput(){
var h : float = Input.GetAxis("Horizontal") * turnSpeed;
var v : float = Input.GetAxis("Vertical") * moveSpeed;
wheelColFR.steerAngle = h;
wheelColFL.steerAngle = h;
wheelColRR.steerAngle = h/2;
wheelColRL.steerAngle = h/2;
wheelColRR.motorTorque = v;
wheelColRL.motorTorque = v;
wheelColFR.motorTorque = v;
wheelColFL.motorTorque = v;
}
Answer by AlucardJay · Sep 24, 2014 at 01:14 AM
Lower the rigidbody center of mass. Consider an anti-roll solution : http://projects.edy.es/trac/edy_vehicle-physics/wiki/TheStabilizerBars
Your answer
Follow this Question
Related Questions
Wheel collider bounce backward 1 Answer
Make wheel colliders stick to the ground 0 Answers
tire falling through terrain? 1 Answer
Applying proper drag and center of mass for a vehicle 1 Answer
How to prevent Wheelie on WheelCollider 2 Answers