すいません、初心者なんですが

bool hogehoge = true;
int foobar = 0;

void Update (){

if(!hogehoge){
return;
}

StartCoroutine(Test());

hogehoge = false;
}

IEnumerator Test(){

while(foobar < 60){
foobar++;
yield return null;
}
}

こういう風に書いた場合
1.最初のUpdate()でTest()のコルーチンをスタート。以後のUpdate()では特に何も行わない。
2.シーン内全てのUpdate()が終わる毎にfoobarを1増加。
3.foobarが60以上になったらコルーチンを終了。

という手順が発生していると考えていいんでしょうか?