- Home /
Question by
snagglepuss · Dec 18, 2011 at 04:50 AM ·
collidertransformvector3
Cars driving the wrong way
I'm making a little game with cars driving back and forth between to walls (colliders). My problem is that when a car is calling with it's second wall it's driving the wrong way e.g. Vector3(-1,0,0) instead of Vector3(1,0,0). I hope you can help me. Thanks in advance. Here's the script:
var acc : float;
private var speed : float;
private var forward : Vector3 = Vector3(0,0,0);
private var timeset : float;
var hitSound: AudioClip;
var driveSound : AudioClip;
var gameover : AudioClip;
function OnTriggerEnter(collision : Collider) { if (collision.gameObject.tag == "wallleft" && transform.position.z == -60)
{
transform.position.z = transform.position.z-60;
audio.loop = false;
transform.Rotate(0,-180,0);
timeset = Time.time;
forward = Vector3(0,0,0);
yield WaitForSeconds(2.0);
forward = Vector3(-1,0,0);
audio.clip = driveSound;
audio.loop = true;
audio.pitch = 1.0;
audio.Play();
}
else if (collision.gameObject.tag == "wallleft" && transform.position.z == -70)
{
transform.position.z = transform.position.z-40;
audio.loop = false;
transform.Rotate(0,-180,0);
timeset = Time.time;
forward = Vector3(0,0,0);
yield WaitForSeconds(2.0);
forward = Vector3(-1,0,0);
audio.clip = driveSound;
audio.loop = true;
audio.pitch = 1.0;
audio.Play();
}
else if (collision.gameObject.tag == "wallleft" && transform.position.z == -80)
{
transform.position.z = transform.position.z-20;
audio.loop = false;
transform.Rotate(0,-180,0);
timeset = Time.time;
forward = Vector3(0,0,0);
yield WaitForSeconds(2.0);
forward = Vector3(-1,0,0);
audio.clip = driveSound;
audio.loop = true;
audio.pitch = 1.0;
audio.Play();
}
else if (collision.gameObject.tag == "wallright" && transform.position.z == -120)
{
transform.position.z = transform.position.z+60;
audio.loop = false;
transform.Rotate(0,180,0);
timeset = Time.time;
forward = Vector3(0,0,0);
yield WaitForSeconds(2.0);
forward = Vector3(1,0,0);
audio.clip = driveSound;
audio.loop = true;
audio.pitch = 1.0;
audio.Play();
}
else if (collision.gameObject.tag == "wallright" && transform.position.z == -110)
{
transform.position.z = transform.position.z+40;
audio.loop = false;
transform.Rotate(0,180,0);
timeset = Time.time;
forward = Vector3(0,0,0);
yield WaitForSeconds(2.0);
forward = Vector3(1,0,0);
audio.clip = driveSound;
audio.loop = true;
audio.pitch = 1.0;
audio.Play();
}
else if (collision.gameObject.tag == "wallright" && transform.position.z == -100)
{
transform.position.z = transform.position.z+20;
audio.loop = false;
transform.Rotate(0,180,0);
timeset = Time.time;
forward = Vector3(0,0,0);
yield WaitForSeconds(2.0);
forward = Vector3(1,0,0);
audio.clip = driveSound;
audio.loop = true;
audio.pitch = 1.0;
audio.Play();
}
}
function Start() { if (transform.position.z == -100 || transform.position.z == -110 || transform.position.z == -120) // || = OR
{
forward = Vector3(1,0,0);
timeset = Time.time;
audio.clip = driveSound;
audio.loop = true;
audio.pitch = 1.0;
audio.Play();
}
else
{
forward = Vector3(-1,0,0);
timeset = Time.time;
audio.clip = driveSound;
audio.loop = true;
audio.pitch = 1.0;
audio.Play();
}
}
function Update () {
// Calculate speed from acceleration and time
speed = acc * (Time.time-timeset);
// Move the object forward along its x axis speed unit/second.
transform.Translate(speed * forward * Time.deltaTime);
}
Comment