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()
というコルーチンを開始する命令であり、オブジェクトを生成し、一定時間待機することを繰り返すことができます。これにより、時間をかけてオブジェクトを生成することが可能になります。
コメント