- Home /
Question by
EliteHedgehog56 · Jan 12, 2021 at 04:20 AM ·
scripting problemtimerracing gamecheckpointsextensionattribute
problem with arcade racer timer system
hey all, I'm in the process of modifying the lap and checkpoint system I have in my arcade racer into a timer system, however I'm having issues where once I enter the second checkpoint it gives me double amounts of the bonus time (e.g. instead of 30 seconds the second checkpoint gives me 60 seconds) and when I pass the finish checkpoint it doesn't trigger the function at all. I'm not sure where in my script I would call out the AddTime function. Any thoughts?
here's the modified checkpoint script
RequireComponent(AudioSource);
var audioSource : AudioSource;
var announcer : AudioClip;
var TimeExtensionText : GameObject;
static var playerTransform : Transform; //Store the player transform
function Start () {
TimeExtensionText.gameObject.active = false;
audioSource = GetComponent.<AudioSource>();
playerTransform = gameObject.Find("player 1 car").transform; //Set the player transform
}
function OnTriggerEnter (other : Collider) {
//Is it the Player who enters the collider?
if (!other.CompareTag("Player 1"))
return; //If it's not the player dont continue
//Is this transform equal to the transform of checkpointArrays[currentCheckpoint]?
if (transform == playerTransform.GetComponent(TimerSystem).checkPointArray[TimerSystem.currentCheckpoint].transform) {
//Check so we dont exceed our checkpoint quantity
if (TimerSystem.currentCheckpoint + 1<playerTransform.GetComponent(TimerSystem).checkPointArray.length) {
//Add to currentLap if currentCheckpoint is 0
if(TimerSystem.currentCheckpoint == 0)
TimerSystem.currentCheckpoint++;
} else {
//If we dont have any Checkpoints left, go back to 0
TimerSystem.currentCheckpoint = 0;
}
visualAid(); //Run a coroutine to update the visual aid of our Checkpoints
//Update the 3dtext
}
}
function visualAid () {
//Set a simple visual aid for the Checkpoints
for (objAlpha in playerTransform.GetComponent(TimerSystem).checkPointArray) {
objAlpha.GetComponent.<Renderer>().material.color.a = 0.2;
}
playerTransform.GetComponent(TimerSystem).checkPointArray[TimerSystem.currentCheckpoint].GetComponent.<Renderer>().material.color.a = 0.8;
}
function AddTime(){
TimeExtensionText.gameObject.active = true;
TimerSystem.timeleft += 10;
audioSource.PlayOneShot(announcer, 0.7F);
DisableText();
}
function DisableText(){
yield WaitForSeconds (2);
TimeExtensionText.gameObject.active = false;
}
and here's the original
static var playerTransform : Transform; //Store the player transform
function Start () {
playerTransform = gameObject.Find("player 1 car").transform; //Set the player transform
}
function OnTriggerEnter (other : Collider) {
//Is it the Player who enters the collider?
if (!other.CompareTag("Player 1"))
return; //If it's not the player dont continue
//Is this transform equal to the transform of checkpointArrays[currentCheckpoint]?
if (transform == playerTransform.GetComponent(CarCheckpoint).checkPointArray[CarCheckpoint.currentCheckpoint].transform) {
//Check so we dont exceed our checkpoint quantity
if (CarCheckpoint.currentCheckpoint + 1<playerTransform.GetComponent(CarCheckpoint).checkPointArray.length) {
//Add to currentLap if currentCheckpoint is 0
if(CarCheckpoint.currentCheckpoint == 0)
CarCheckpoint.currentLap++;
CarCheckpoint.currentCheckpoint++;
} else {
//If we dont have any Checkpoints left, go back to 0
CarCheckpoint.currentCheckpoint = 0;
}
visualAid(); //Run a coroutine to update the visual aid of our Checkpoints
//Update the 3dtext
}
}
function visualAid () {
//Set a simple visual aid for the Checkpoints
for (objAlpha in playerTransform.GetComponent(CarCheckpoint).checkPointArray) {
objAlpha.GetComponent.<Renderer>().material.color.a = 0.2;
}
playerTransform.GetComponent(CarCheckpoint).checkPointArray[CarCheckpoint.currentCheckpoint].GetComponent.<Renderer>().material.color.a = 0.8;
}
Comment