読者です 読者をやめる 読者になる 読者になる

【Unity】コルーチンの中断処理

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