【Unity】コルーチンを複数実行する
Unityにおいて、複数のコルーチンを実行するには、以下の方法があります。
実行サンプル
同時に複数のコルーチンを開始するには、StartCoroutineを使用します。たとえば、以下のように、3つのコルーチンを同時に開始することができます。
void Start()
{
StartCoroutine(Coroutine1());
StartCoroutine(Coroutine2());
StartCoroutine(Coroutine3());
}
コルーチンの実行中に別のコルーチンを開始するには、StartCoroutineを使用して、新しいコルーチンを開始することができます。以下のように、Coroutine1の実行中にCoroutine2を開始することができます。
IEnumerator Coroutine1()
{
Debug.Log("Coroutine1 started.");
yield return StartCoroutine(Coroutine2());
Debug.Log("Coroutine1 finished.");
}
IEnumerator Coroutine2()
{
Debug.Log("Coroutine2 started.");
yield return new WaitForSeconds(2);
Debug.Log("Coroutine2 finished.");
}
複数のコルーチンを同時に実行するために、StartCoroutineを使用して、複数のコルーチンを開始し、それらを一つのコルーチンでまとめることもできます。以下の例では、3つのコルーチンを同時に開始し、それらがすべて完了するまで待機するコルーチンを示しています。
IEnumerator MultipleCoroutines()
{
yield return StartCoroutine(Coroutine1());
yield return StartCoroutine(Coroutine2());
yield return StartCoroutine(Coroutine3());
Debug.Log("All coroutines finished.");
}
以上の方法を使用して、Unityで複数のコルーチンを実行することができます。
全てのコルーチンを止めるには
Unityで全てのコルーチンを停止するには、StopAllCoroutinesメソッドを使用します。このメソッドは、現在実行中の全てのコルーチンを停止します。
以下は、StopAllCoroutinesを使用して全てのコルーチンを停止する例です。
using UnityEngine;
public class Example : MonoBehaviour
{
private IEnumerator Coroutine1()
{
while (true)
{
Debug.Log("Coroutine1 is running.");
yield return null;
}
}
private IEnumerator Coroutine2()
{
while (true)
{
Debug.Log("Coroutine2 is running.");
yield return null;
}
}
private void Start()
{
StartCoroutine(Coroutine1());
StartCoroutine(Coroutine2());
}
private void StopAllCoroutinesButtonOnClick()
{
StopAllCoroutines();
}
}
この例では、StartメソッドでCoroutine1とCoroutine2を開始し、StopAllCoroutinesButtonOnClickメソッドで全てのコルーチンを停止することができます。StopAllCoroutinesを呼び出すと、Coroutine1とCoroutine2が停止し、ログ出力も停止します。
ディスカッション
コメント一覧
まだ、コメントがありません