コルーチンとは

Unityのコルーチンは、C#のイテレーターとして実装されています。イテレーターは、反復可能なオブジェクトに対してループを実行する機能を提供するC#の機能です。コルーチンは、イテレーターを使用して、時間の経過に基づいた処理を実現するために設計されています。

コルーチンは、通常、Unityのスクリプトで使用され、ゲームオブジェクトの動作に関連するタスクを制御するために使用されます。例えば、オブジェクトが移動するアニメーションを実行する際に、コルーチンを使用して、アニメーションが滑らかに実行されるように時間的な遅延を設定することができます。

コルーチンは、IEnumeratorインターフェースを実装するメソッドで定義されます。このメソッドは、yield returnステートメントを使用して、イテレーターが返す値を指定します。yield returnステートメントは、値を返すだけでなく、次に実行されるコルーチンを指定することもできます。

コルーチンは、実行中のタスクの一時停止と再開を可能にします。例えば、yield return new WaitForSeconds(5)というステートメントを使用すると、コルーチンは5秒間停止し、次に実行されるまで待機します。この機能により、ゲームの動作を時間的に制御することができます。

コルーチンは、Unityのスクリプトで広く使用されており、Unityの多くの機能に使用されています。コルーチンを使用することで、時間的な制御をより正確に実行することができ、より滑らかなアニメーションやゲームプレイ体験を実現することができます。

サンプル

using UnityEngine;
using System.Collections;

public class ExampleScript : MonoBehaviour
{
    public GameObject objectToHide;
    public float delay = 3.0f;

    void Start()
    {
        StartCoroutine(HideObjectAfterDelay());
    }

    IEnumerator HideObjectAfterDelay()
    {
        yield return new WaitForSeconds(delay);
        objectToHide.SetActive(false);
    }
}

上記のサンプルでは、コルーチンを使用して、指定された時間(delay変数)の後にオブジェクトを非表示にしています。Start()メソッドでHideObjectAfterDelay()コルーチンを開始し、その中でWaitForSeconds()を使用して指定された時間を待機し、その後、SetActive()を使用してオブジェクトを非表示にしています。

このように、コルーチンを使用することで、時間的な制御が必要な場合に柔軟に処理を実現することができます。

Unity,コルーチン

Posted by hidepon