Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9739

【Unity/C#】コルーチンのサンプル

$
0
0

概要

本記事では【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;}

FadeIn.gif

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;}

FadeOut.gif


Viewing all articles
Browse latest Browse all 9739

Trending Articles