【Unity】コルーチンの中断処理
今日触ったコードに、コルーチンを使った中断処理が登場したのでメモ。
今のところ、下記をよく見かけます。
var waitTime = 1f;
yield return new WaitForSeconds (waitTime);
シンプルに、指定秒数待つパターン。
while (isLoading) {
yield return null;
}
ある状態の間、待ち続けるパターン。
yield return nullは、処理を止めて、次のフレームから処理を再開するもの。
yield return StartCoroutine (DoHoge());
途中で別のコルーチンを呼ぶパターン。
呼び先の処理が終わるまで、呼び元の処理は中断。
yield break;
コルーチンの処理をそこで抜けるパターン。
yield return new WaitWhile (() => _isLoading);
ある条件を満たすまで処理を待つパターン、その2。逆はWaitUntil。
Unity5.3以降はこちらがスマートかも。
yield return new WaitForEndOfFrame ();
スクリーン上のレンダリングが完了するまで待つパターン。
他にもいくつかパターンがある模様。
下記によくまとまっていたので、参考にさせていただきます。ありがたや。
Unityのコルーチンの使い方をまとめてみた - WonderPlanet DEVELOPER BLOG