- Home /
Method containing while loop in custom class?
Hi! After a lot of testing, I'm posting... Trying to implement nice clean classes for a music game, one of them is a "local tempo" class. But it seems the method containing a while loop is simply not responding (no errors, nada). I tried to strip it down to the following:
class Test
{
var testInt :int;
function Test()
{
testInt =0;
}
function TestNow()
{
while(testInt<100)
{
testInt++;
yield WaitForFixedUpdate;
}
}
}
then instantiating the class and calling its method:
var test:Test;
test =new Test;
test.TestNow();
Debugging test.testint just gives me 0 forever... Is it just not possible to execute a while loop in a method? Or am I missing something super obvious?
Many thanks for your help!
Gregzo
Answer by Daniel 6 · Dec 10, 2011 at 10:06 PM
Yields and coroutines can only be defined in a class deriving from MonoBehaviour. So you have to make Test derive from MonoBehaviour and place that onto a GameObject.
But the while-loop should work fine if you get rid of the yield in your current script.
thanks! So, now in my class def, I type class Test extends $$anonymous$$onoBehaviour , then use gameObject.AddComponent("Test") , to which I get an error : can't add because class Test does not exist... Hum!
What's the name of the script file you are defining it from? It needs to be called "Test" to work.
Argh, many thanks, that's it. It's all working now, although I realize I just wrote a script without using the shortcuts... Learning, cheers for the help!
Your answer
Follow this Question
Related Questions
list.contains isn`t working 1 Answer
My grid is getting created on the wonk 1 Answer
RayCastHit 2 Answers
or doesn't work in while loops? 1 Answer
For Loop inside While Loop won't Repeat 0 Answers