attach parent to instantiated object c#

Hello everyone
I need a little help
I looked around a lot of forums etc to find some answers, but everything I tried fail so…

I’m trying to attach an enemy gameobject I instantiate to a background gameobject already present in my scene.
Here is the code to instantiate the gameobject

using UnityEngine;
using System.Collections;

public class enemiescontroller : MonoBehaviour {

	public GameObject enemy;
    public GameObject parent;
	public Vector3 spawnvalues;
	public int hazardcount;
	public float spawnwait;
	public float startwait;
	public float wavewait;
	public GameObject player;
	

	// Use this for initialization
	void Start () {

		StartCoroutine (SpawnWaves ());
	}

	IEnumerator SpawnWaves () {

		yield return new WaitForSeconds (startwait);
		while (true) {
		for (int i = 0; i < hazardcount; i++) {
				Vector3 spawnPosition = new Vector3 (spawnvalues.x, spawnvalues.y, spawnvalues.z);
				//Quaternion spawnRotation = Quaternion.identity;
				Instantiate (enemy, spawnPosition, enemy.transform.rotation);
				enemy.transform.parent = parent.transform;
				yield return new WaitForSeconds (spawnwait);
				}
		yield return new WaitForSeconds (wavewait);
			//stop loop at game over
			if (player == null)
			{
				break;}
			}
	}
}

I don’t get what I’m missing…

enemy is (probably) a prefab, and you are trying to attach it. Instantiate creates and returns a new object, this is the one you want to attach.

GameObject newEnemy = (GameObject)Instantiate (enemy, spawnPosition, enemy.transform.rotation);
newEnemy.transform.parent = parent.transform;