Linking Variable Values

I have timer that is counting down which is working fine. I would like use the current time and add additional time if my game object collides with a pickup etc. For whatever reason I can’t get the currentTime variable to connect between the two scripts and update the currentTime. Any suggestions would be greatly appreciated.

Script A Timer.js

// the textfield to update the time to
private var textfield:GUIText;

// time variables
public var allowedTime:int = 90;
public var currentTime;

function Awake()
{
	
	currentTime = allowedTime;
	
	// retrieve the GUIText Component and set the text
	textfield = GetComponent(GUIText);
	
	UpdateTimerText();
	
	// start the timer ticking
	Tick();
}

function Tick()
{
 	// while there are seconds left
	while(currentTime > 0)
	{
		// wait for 1 second
		yield WaitForSeconds(1);
		
		// reduce the time
		currentTime--;
		
		UpdateTimerText();
	}
	
	// game over
	print("Game Over");
}

function UpdateTimerText()
{
	// update the textfield
	textfield.text = currentTime.ToString();
}

Script B (attached to the object)

private var currentTime: Timer;

function OnCollisionEnter(collision : Collision) {    
    if (collision.gameObject.name == "pickup"){
    currentTime +=5;
    
      
  			 } 			
 } 		

Script B is where I am totally confused. What connector or function am I missing to make this work?

I have read some of the previous postings related to this topic but I think my question is different - or at least I don’t understand the solutions in the other postings :slight_smile:

First: You have to set your currentTime var at the script B. You can do that by:

  1. Making it public and dragging with the inspector
  2. Using : currentTime = objectThatHoldsScriptA.GetComponent(Timer);

Second: currentTime in script B is not an number, it’s an script (I recommend you to rename it to avoid confusions) so you have to access the currentTime (number) that is inside it:

currentTime.currentTime += 5;