- Home /
Ints not updating as expected?
I wish for the code here to check one if statement, if true do one thing, if not check the next statement. I've tried many things from else if to ints and bools. When the script runs, two or three of the statements come back true. Is there something obvious I'm missing?
private int keepchecking = 0;
void Start () {
if(CarGUI.finaltime<currentfirst || currentfirst==0)
{
Newfirst();
keepchecking-=1;
}
if((keepchecking==0 && CarGUI.finaltime<currentsecond) || (keepchecking==0 && currentsecond==0))
{
Newsecond();
keepchecking-=1;
}
if((keepchecking==0 && CarGUI.finaltime<currentthird) || (keepchecking==0 && currentthird==0))
Newthird();
}
(this is just a section of the start script, the rest shouldn't be a factor) below is another version of the script running from Update. In the log it shows Newfirst is being activated, but keepchecking is never 3, continuing to activate Newsecond then keepchecking = 2.
void Update() {
print (keepchecking);
if(keepchecking==0 && CarGUI.finaltime<currentfirst || keepchecking==0 && currentfirst==0)
{
Newfirst();
keepchecking=3;
}
if((keepchecking==0 && CarGUI.finaltime<currentsecond) || (keepchecking==0 && currentsecond==0))
{
Newsecond();
keepchecking=2;
}
if((keepchecking==0 && CarGUI.finaltime<currentthird) || (keepchecking==0 && currentthird==0))
{
Newthird();
keepchecking=1;
}
}
On further inspection, it appears keepchecking is setting to 3, then resetting to 0 before setting itself to 2. Any ideas?
Answer by RyanPaterson · May 13, 2014 at 03:11 PM
You're code is in ' Start()'
Start runs I believe when the game is visible. There is also Awake, for before this.
Then there is Update, which is kind of like a while(true) loop, but the 'true' being... game is running, or script is there.
You want to put your code in 'Update'
EDIT: Here's the docs (with the correct functionality detailed) , look under the subheading 'Messages' http://docs.unity3d.com/Documentation/ScriptReference/MonoBehaviour.html
I'm aware it's in Start, I want it to check at the beginning alone. Though I have tried it in Update and come across similar problems.
Your answer
Follow this Question
Related Questions
Int Value Not Randomizing 3 Answers
Checking if touching a trigger. 1 Answer
Error when checking if float is a whole number 2 Answers
C Sharp int equal 1 or <4 && >15 1 Answer
Right way to use multiple "or" withinin "if" statement? 2 Answers