「毎日Unity」の技術ブログ

開発で役立つ情報を発信する

【UnityC#】Coroutineの使い方

今回はCoroutineの使い方についてまとめてみました。

[ StartCoroutine ]

StartCoroutineは指定したコルーチンを呼び出すことができます。
下記は3秒後にコンソールに「3秒後に呼び出されるよ!」と出力するスクリプトです。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ScriptTest : MonoBehaviour
{
    void Start()
    {
        //FunctionTestを呼び出します。
        StartCoroutine("FunctionTest");
    }

    IEnumerator FunctionTest()
    {
        //3秒停止。
        yield return new WaitForSeconds(3f);

        Debug.Log("3秒後に呼び出されるよ!");
    }
}

[ StopCoroutine ]

StopCoroutineはStartCoroutineの呼び出しを無効化できます。
下記は3秒後にコンソールに「3秒後に呼び出されるよ!」と出力するスクリプトですが、スペースキーを3秒以内に押せばコンソールに出力するのを無効化できます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ScriptTest : MonoBehaviour
{
    void Start()
    {
        //FunctionTestを呼び出します。
        StartCoroutine("FunctionTest");
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            StopCoroutine("FunctionTest");
        }
    }

    IEnumerator FunctionTest()
    {
        //3秒停止。
        yield return new WaitForSeconds(3);

        Debug.Log("3秒後に呼び出されるよ!");
    }
}