Unity Object Spawn via coroutine

void Update()
    {
        StartCoroutine(SpawnBox(10));
    }
    IEnumerator SpawnBox(float time)
    {
        PhotonNetwork.Instantiate("AmmoBox", new Vector3(Random.Range(-3, 3), -.2f, Random.Range(-3, 3)), new Quaternion(0, Random.Range(-360, 360), 0, 0));
        yield return new WaitForSeconds(15);
    }

Why does it spawn a lot and not wait ? I want to make it spawn one object and wait 10 seconds, and so cyclically How do I do this ?

 0
Author: abdelich, 2020-05-07

1 answers

Everything I found, since it is in Update it is executed every frame independently. I wrote everything in start like this:

void Start()
{
    StartCoroutine(SpawnBox(17));
}
IEnumerator SpawnBox(float time)
{
    while (true)
    {
        PhotonNetwork.Instantiate("AmmoBox", new Vector3(Random.Range(-3, 3), -.2f, Random.Range(-3, 3)), new Quaternion(0, Random.Range(-360, 360), 0, 0));
        yield return new WaitForSeconds(time);
    }
}
 0
Author: abdelich, 2020-05-07 10:48:19