Instatiate object in every given second problem C#

Hello. I’d like to instantiate object in every given second. I read some articles and found the solution, but it doesn’t work for me. Could you help me find the problem?

Error: Assets/Scripts/Spawner.cs(14,45): error CS1525: Unexpected symbol (', expecting )‘, ,', ;’, [', or =’

Here is my code:

public class Spawner : MonoBehaviour {

	public GameObject spawnedObject;
	public float begin;
	public float end;
	public float timeDelay = 2;

	void Start() {
		float y = Random.Range(begin,end);
		while(true){
			Instantiate(spawnedObject, new Vector3(-11,y,0), Quaternion.identity);
			yield WaitForSeconds(timeDelay);
		}
	}
}

Well line 14 is closing bracket }. It might help if you post what line 14 is in your code to help us out. But I do see a couple of things wrong. “yield WaitForSeconds(…)” should be “yield return new WaitForSeconds(…)”. Also, to use Start as a coroutine, you have to define start as “IEnumerator Start()”.

Your issue is that you’re in C#, and using the yield function incorrectly. You want to either use a repeating Invoke, or a coroutine to wait your time delay.

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

IEnumerator SpawnEachSecond(){
    while(true){
        float y = Random.Range(begin,end);
        Instantiate(spawnedObject, new Vector3(-11,y,0), Quaternion.identity);
        yield return new WaitForSeconds(timeDelay);
    }
}