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




