【Ubuntu】コルーチンについて
目次
コルーチンとは
コルーチンとは、実行を停止して Unity へ制御を戻し、その次のフレームで停止したところから続行することができる関数
です。
Unityのコルーチンの使い道
- 処理を指定した時間後に呼び出したい
- 少しずつ処理を実行したい
- Update(毎フレーム)更新する必要がないが定期的に処理したい
基本構文
メソッドの定義
コルーチンメソッドはIEnumerator
と付けることで作成できます。
yield return null
を呼び出した行で処理が停止して、次のフレーム
で停止したところから続行することができます。
1 |
|
実行
StartCorutine
関数でコルーチンをメソッドを呼び出すことで実行されます。
StartCorutine
の引数には、以下の2種類の方法があります。
- IEnumeratorを定義したメソッドを渡す
- IEnumeratorを定義したメソッドのメソッド名を渡す
どちらの方法も実行される内容は同じです。
1 |
|
引数がある場合の実行
1 |
|
停止
内部から停止させる
yield break;
を停止させたい行に記述します。
このbreakはネストされたループ用のbreakとは違い、一番深いネストでyield break;
を呼んだ場合、すべての処理が停止します。
1 |
|
外部から停止させる
StopCoroutine
関数を使用します。開始させた方法によって停止のさせ方も変わります。
- IEnumeratorを定義したメソッドを渡した場合は、
StopCoroutine
の引数にStartCoroutineで渡したメソッドと同じ参照のメソッドを渡す - IEnumeratorを定義したメソッドのメソッド名を渡した場合は、
StopCoroutine
の引数に””メソッド名をで指定する
また特徴として、メソッド名を指定して停止させた場合
、その時動いているメソッド名と一致するコルーチンすべてが停止します。メソッドの参照を指定している場合は、指定したメソッドのみが停止します。
メソッドを指定した場合
1 |
|
メソッド名を指定した場合
1 |
|
【Ubuntu】コルーチンについて