【Unity/C#】コルーチンのサンプル
概要
本記事では【Unity/C#】コルーチンについてでコルーチンについての基本的なことを学んだのでコルーチンを用いた実用例をいくつかご紹介したいと思います。
目次
x秒後に処理
サンプルコード
IEnumerator Delay(float _delayTime)
{
//ここで指定した秒数止める
yield return new WaitForSeconds(_delayTime);
//ここから処理
}
x秒ごとにfor文を動かす
IEnumerator Delay(float _delayTime)
{
for (int i = 0; i < 10; i++)
{
//この間に処理
//この間に処理
//ここで指定した秒数止める
yield return new WaitForSeconds(_delayTime);
}
}
1フレーム後に処理
IEnumerator Delay()
{
//1フレーム遅らせる
yield return null;
//このコルーチンが呼び出されて1フレーム後にここまで到達
//1フレーム遅らせる
yield return null;
//このコルーチンが呼び出されて2フレーム後にここまで到達
}
1フレームごとにfor文を動かす
IEnumerator Delay(float _delayTime)
{
for (int i = 0; i < 10; i++)
{
//この間に処理
//この間に処理
//ここで指定した秒数止める
yield return new WaitForSeconds(_delayTime);
}
}
IEnumerator Delay()
{
//1フレーム遅らせる
yield return null;
//このコルーチンが呼び出されて1フレーム後にここまで到達
//1フレーム遅らせる
yield return null;
//このコルーチンが呼び出されて2フレーム後にここまで到達
}
1フレームごとにfor文を動かす
サンプルコード
IEnumerator Delay()
{
for (int i = 0; i < 10; i++)
{
//この間に処理
//この間に処理
//ここで指定した秒数止める
yield return null;
}
}
Fade
FadeIn
サンプルコード
IEnumerator FadeIn(SpriteRenderer _sr,float _decrease)
{
//この処理が動いていたら2重に呼び出されてもここで止める
if (startUp==true)
{
yield break;
}
//↑で処理を止めるフラグをtureに
startUp = true;
//カラー情報を取得
Color color = _sr.color;
//α値を0になるまで減らす
while (_sr.color.a>=0)
{
//α値を減らす
color.a -= _decrease*Time.deltaTime;
//カラーを適応
_sr.color = color;
//処理を1フレーム遅らせ続ける
yield return null;
}
//処理を終了
startUp = false;
yield break;
}
FadeOut
サンプルコード
IEnumerator FadeOut(SpriteRenderer _sr,float _add)
{
//この処理が動いていたら2重に呼び出されてもここで止める
if (startUp==true)
{
yield break;
}
//↑で処理を止めるフラグをtureに
startUp = true;
//カラー情報を取得
Color color = _sr.color;
//α値を0になるまで減らす
while (_sr.color.a<=1)
{
//α値を増やす
color.a += _add*Time.deltaTime;
//カラーを適応
_sr.color = color;
//処理を1フレーム遅らせ続ける
yield return null;
}
//処理を終了
startUp = false;
yield break;
}
Author And Source
この問題について(【Unity/C#】コルーチンのサンプル), 我々は、より多くの情報をここで見つけました https://qiita.com/tilyakuda/items/45adca059187cfc3b7cd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .