コルーチンを使って繰り返し実行する方法

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

public class ObjectSpawner : MonoBehaviour
{
public GameObject prefab;
public float spawnInterval = 1.0f;

private void Start()
{
    StartCoroutine(SpawnObjects());
}

IEnumerator SpawnObjects()
{
    while (true)
    {
        Vector3 randomPosition = new Vector3(Random.Range(-5f, 5f), Random.Range(0f, 5f), Random.Range(-5f, 5f));
        Instantiate(prefab, randomPosition, Quaternion.identity);
        yield return new WaitForSeconds(spawnInterval);
    }
}

}

StartCoroutine(SpawnObjects()); は、Unityの特徴であるコルーチンを開始するための命令です。コルーチンは、通常の関数とは異なり、一度に実行を完了せずに、複数のフレームに分けて実行される関数です。これにより、一定時間ごとに処理を行ったり、待機時間を設けたりすることが容易になります。

StartCoroutine() は、指定されたコルーチンを実行するためのメソッドで、引数には実行したいコルーチンが指定されます。この例では、SpawnObjects()というコルーチンが指定されています。

コルーチンの定義は、通常のメソッドと異なり、戻り値の型として IEnumerator を使用します。また、コルーチン内で yield return 文を使用して、処理を一時停止し、後続のフレームで処理を再開することができます。

この例では、SpawnObjects() コルーチンが StartCoroutine() で開始され、オブジェクトの生成を行い、yield return new WaitForSeconds(spawnInterval); で一定時間(spawnInterval秒)待機します。その後、次のオブジェクトを生成するためにコルーチンが再開されます。このプロセスは無限ループになっているため、プログラムが終了するまで続きます。

要約すると、StartCoroutine(SpawnObjects());は、SpawnObjects()というコルーチンを開始する命令であり、オブジェクトを生成し、一定時間待機することを繰り返すことができます。これにより、時間をかけてオブジェクトを生成することが可能になります。

この記事が気に入ったら
フォローしてね!

コメント

コメントする

目次