環境
Unity2017.4.1f1
コルーチン呼び出しで、関数が切り替わるタイミングのメモ。
void Start () {
int twork = 0;
Debug.Log("Start1 twork="+twork);
StartCoroutine( Test00( (T) => { twork = T; } ) );
Debug.Log("Start2 twork="+twork);
}
public IEnumerator Test00(Action<int> func)
{
func(99);
yield return null;
func(88);
Debug.Log("Start3 ");
}
上記のようなコードを作成して実行してみた。
なんとなく、コルーチン処理は登録後、即座に実行はされていないと思っていた。
つまり、
Start2 twork=0
となるのではないか?
結果
Start1 twork=0
Start2 twork=99
Start3
となった。
なるほど、StartCoroutineが呼ばれた後は、その関数に遷移し、yield return が呼ばれるまで処理を行い
呼ばれた後に呼び先の関数の処理が継続されるのね。
個人的な備忘録です。