
【Unity】コルーチンを使ってみる
やりたいこと
コルーチンを使って処理をずらしてみる
環境
- OS : macOS Sequoia 15.2
- Unity : Unity6(6000.0.34f1)
コルーチンとは
コルーチン(Coroutine)とは特定の処理を一時停止できる仕組みのことを言う。
一般的な関数は一気に全ての処理が実行されますが、コルーチンは途中で一時停止、再開ができる。 例えば、ゲーム開始何秒後かに関数を実行するなんてことができる。
Coroutine は、「協調(co)+ 一連の処理の集合(routine)」 である。
なので、複数の処理が協力しながら進む処理の集合を表す。
使ってみる
今回はお金を見つけて交番に届ける流れをコルーチンで試してみたいと思います。
「お金を見つける ➡︎ 歩く ➡︎ 拾う ➡︎ 交番に行く」の流れを 1 秒ずらしでデバックしてみる。
using System.Collections;
using UnityEngine;
public class test : MonoBehaviour
{
void Start()
{
StartCoroutine(Sample());
}
IEnumerator Sample(){
Debug.Log("お金を見つける");
yield return new WaitForSeconds(1f);
Debug.Log("歩く");
yield return new WaitForSeconds(1f);
Debug.Log("拾う");
yield return new WaitForSeconds(1f);
Debug.Log("交番に行く");
}
}
実行結果 ⬇︎
コルーチンを使うには、using System.Collections が必要。
StartCoroutine(“関数名”)でコルーチンを呼び出す。
コルーチンは IEnumerator(アイイニューマレーター)型を使う必要がある。 IEnumerator は「Iterator(反復処理) Enumerator(列挙するもの)」の略であり、順番にデータを列挙(取り出す)できる仕組みである。
yield return new WaitForSeconds(1f);で 1 秒間処理を中断し、再開するようになる。