Unityの作業似て用いられる遅延処理の中で結構ベターな処理であるStartCoroutineについてまとめてるだけ。
コルーチンってなんぞや
中断可能な処理のことでござる( ˘ω˘)
今回使うStartCoroutineはそのコルーチンの中でも「一定時間中断処理をする」という意味になります。
まずは実際の処理を見ましょう。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
void Start()
{
//(1)コルーチンの格納と再生処理
Coroutine croutine = StartCoroutine("Tiensyori",1.0f);
}
(1+)
private IEnumerator Tiensyori(float s_waitTime)
{
//(2)遅延処理の実行と停止時間の挿入
yield return new WaitForSecond(s_waitTime);
//(3)遅延後に行いたい処理
(以下文章)~~~~~~~~~~~~~~~~
}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
上記では「1.0fの間、処理を中断する」という処理を行っています。
Start関数で(1)が呼び出され、(1)に記載されているStartCoroutineをCoroutine型であるcroutineに格納します。
呼び出した後、引数に含まれているTiensyoriを実行します。
呼び出されたTiensyoriは(2)に記載されているWaitForSecond関数をreturnで返し、中断処理を行います。
この際、WaitForSecondは中断する秒数を()の中の引数と同じにするため、s_waitTimeを引き数に入力しています。
この時注意として(2)に記載されたyield return 以前に行われた処理は遅延処理が発生せず、遅延後に処理を行いたい場合はyield return以降に処理を記載しなければならない。
コメント
コメントにはログインが必要です