渋谷ほととぎす通信

完全趣味でやってるUnityメモ。説明できないところを説明できるようにするための個人ブログ。昨日の自分より少しでも大きくなれるように。。。 ※所属団体とは一切関係がありません

Unity パラレルコルーチンの実装方法


f:id:esakun:20150730215258g:plain

環境

  • Unity5.5.0p4

複数同時にコルーチンを実行して終了を待つといった処理をしたいときがあります。 そんな時、私は以下のようなコードで実装します。

軽く説明をすると、9行目のStartParallelCoroutineの引数にIEnumerator型の配列を渡すだけです。 第2引数のアクションで終了通知を受け取る実装になっています。

使用するときはこんな感じでです。

f:id:esakun:20170120185226p:plain

このようにログが出力され、全てのコルーチンが終了するのを待機していることが分かります。

また、ParallelCoroutineクラスで CurrentParallelCoroutineプロパティを提供しているのは現在パラレルコルーチンが実行中かどうかということを調べるためです。ゲーム開発していて、コルーチンの多重実行のバグに結構私は引っかかった経験があります(連打とかで)。

それを回避するために、パラレルコルーチンを実行する前にCurrentParallelCoroutineプロパティがnullではない事を確認してから実行するフローのための定義です。

あわせてどうぞ

www.shibuya24.info

www.shibuya24.info

www.shibuya24.info

www.shibuya24.info

www.shibuya24.info