- Home /
Question by
nicedude80 · May 07, 2014 at 10:25 PM ·
rotationcharactercontrollersimplemovelocked
X rotation locked with character controller
I have a car that won't tilt downwards when going down a hill. The back bumper just rubs along the ground. So basically the x and z are locked. This is the code I use for moving the car:
using UnityEngine;
using System.Collections;
public class CarControl : MonoBehaviour {
public Transform flw;
public Transform frw;
public Transform blw;
public Transform brw;
CharacterController cc;
Quaternion leftTurn = new Quaternion(0, 75, 0, 25);
Quaternion rightTurn = new Quaternion(0, -75, 0, 25);
Quaternion noRotation = new Quaternion(0, 0, 0, 0);
public float topSpeed;
float currentSpeed;
public float acceleration;
Vector3 direction;
// Use this for initialization
void Start () {
cc = GetComponent<CharacterController> ();
}
// Update is called once per frame
void Update () {
direction = transform.rotation * new Vector3 (0, 0, Input.GetAxis ("Vertical"));
if (currentSpeed == 0) {
//Nothing.
} else if (currentSpeed > 0) {
currentSpeed -= 0.05f;
} else if (currentSpeed < 0) {
currentSpeed += 0.05f;
}
if (Input.GetKey ("a") && currentSpeed > 0.5) {
flw.rotation = leftTurn;
frw.rotation = leftTurn;
cc.transform.Rotate(new Vector3(0, -2, 0));
} else {
flw.rotation = noRotation;
frw.rotation = noRotation;
}
if (Input.GetKey("d") && currentSpeed > 0.5) {
flw.rotation = rightTurn;
frw.rotation = rightTurn;
cc.transform.Rotate(new Vector3(0, 2, 0));
}
if (Input.GetKey ("w") || Input.GetKey("s")) {
if(currentSpeed <= topSpeed){
currentSpeed += acceleration;
}
if(Input.GetKey("space") && currentSpeed > 0){
currentSpeed -= 0.1f;
}
}
}
void FixedUpdate(){
if (currentSpeed > 0.1) {
cc.SimpleMove(direction * currentSpeed);
}
}
}
Comment
I really just need a simple car controller script, maybe the character controller isn't working great, but I just need a simple turn left right go forward backward script that will make the car also level with ground.
Your answer
Follow this Question
Related Questions
Charactercontroller.move affecting rotation 1 Answer
how to ignore transform.position.y 3 Answers
Camera lock on enemy 0 Answers
CharacterController "breaks" collision, goes haywire 2 Answers
Rotation attribution problem 0 Answers