概要
本記事では【Unity/C#】コルーチンについてでコルーチンについての基本的なことを学んだのでコルーチンを用いた実用例をいくつかご紹介したいと思います。
目次
x秒後に処理
サンプルコード
IEnumeratorDelay(float_delayTime){//ここで指定した秒数止めるyieldreturnnewWaitForSeconds(_delayTime);//ここから処理}x秒ごとにfor文を動かす
IEnumeratorDelay(float_delayTime){for(inti=0;i<10;i++){//この間に処理//この間に処理//ここで指定した秒数止めるyieldreturnnewWaitForSeconds(_delayTime);}}1フレーム後に処理
IEnumerator Delay()
{
//1フレーム遅らせる
yield return null;
//このコルーチンが呼び出されて1フレーム後にここまで到達
//1フレーム遅らせる
yield return null;
//このコルーチンが呼び出されて2フレーム後にここまで到達
}
1フレームごとにfor文を動かす
サンプルコード
IEnumeratorDelay(){for(inti=0;i<10;i++){//この間に処理//この間に処理//ここで指定した秒数止めるyieldreturnnull;}}Fade
FadeIn
サンプルコード
IEnumeratorFadeIn(SpriteRenderer_sr,float_decrease){//この処理が動いていたら2重に呼び出されてもここで止めるif(startUp==true){yieldbreak;}//↑で処理を止めるフラグをtureにstartUp=true;//カラー情報を取得Colorcolor=_sr.color;//α値を0になるまで減らすwhile(_sr.color.a>=0){//α値を減らすcolor.a-=_decrease*Time.deltaTime;//カラーを適応_sr.color=color;//処理を1フレーム遅らせ続けるyieldreturnnull;}//処理を終了startUp=false;yieldbreak;}FadeOut
サンプルコード
IEnumeratorFadeOut(SpriteRenderer_sr,float_add){//この処理が動いていたら2重に呼び出されてもここで止めるif(startUp==true){yieldbreak;}//↑で処理を止めるフラグをtureにstartUp=true;//カラー情報を取得Colorcolor=_sr.color;//α値を0になるまで減らすwhile(_sr.color.a<=1){//α値を増やすcolor.a+=_add*Time.deltaTime;//カラーを適応_sr.color=color;//処理を1フレーム遅らせ続けるyieldreturnnull;}//処理を終了startUp=false;yieldbreak;}
