- Home /
Point system doesnt add points after 10 seconds
I wrote a simple script but after 10 seconds it wont really show the score. The script has no errors
function OnGUI()
{
GUILayout.Label( "Amount of Coins = " + score );
}
var Time = 10;
var score = 0;
if (Time < 0) {
score += 5;
}
Answer by alebasco · Jun 12, 2015 at 08:59 PM
Your code
var Time = 10;
var score = 0;
if (Time < 0) {
score += 5;
}
isn't in any function, so it is never being executed. Put it into the update function, and decrement the time variable. I would suggest a few tutorials on programming first.
Answer by Patpat08 · Jun 13, 2015 at 03:17 PM
would this work?
var time = 10;
var score = 0;
function OnGUI()
{
GUILayout.Label( "Amount of Coins = " + score );
}
function getcoins()
{
time -= Time.deltaTime;
if(time <= 0){
score += 5;
}
}
What is calling getcoins? If nothing calls the function, it will not run.
There are some built in functions in Unity, like Update, Start, Awake, OnGUI OnDestroy etc etc. These functions are called by Unity itself. Your function has nothing calling it, so the computer does not know it is supposed to run that code - how would it know when to do so?
If you add an update function that calls getcoins() it will run it.
function Update() { getcoins(); }
Note: your current code will add 5 score EVERY FRA$$anonymous$$E after 10 seconds, resulting in an infinitely large number very quickly. If you're trying to add 5 score every 10 seconds, make sure you set time = 10 after you add score each time.
Ok but still i dont get the "set time = 10" what part would that go in? would it be in the var or the function Update?
Your answer
Follow this Question
Related Questions
Gradle error while building on Android 0 Answers
Staring system, problem... 2 Answers
Adding score when enemy dies (Errors) 2 Answers
Unity 5 causes windows 8 to blue screen? 1 Answer
I need help making my score not reset on Awake, but on a scene i have 0 Answers