- Home /
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 :)
Answer by hvilela · Oct 20, 2012 at 10:29 PM
First: You have to set your currentTime var at the script B. You can do that by:
Making it public and dragging with the inspector
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;
You are awesome. I needed to add a reference to the update function but otherwise worked great.
With one exception. The timer will update only momentarily and then revert back to where it was before, less the additional countdown. I imagine I am not storing the new currentTime correctly. Any ideas?
Your answer
![](https://koobas.hobune.stream/wayback/20220613082653im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
How do you store a function in a variable in c#? 2 Answers
Object B doesn't see Variable values that Object A does 1 Answer
Range of Unitys Variables 2 Answers
How Can I Disable a function if a variable equals zero 1 Answer
Creating & accessing a function from a diffrent "OnTriggerEnter" Function 1 Answer