Enemy spawn script not working properly !

var enemy : GameObject;
var timeDelay = 3;
var ready = true;
var timer : int = 240;
var limit : int = 40;
var left : int = 40;
var grip : Transform;

function Start(){
ready = true;
if(ready){
    if(timer > 0){
    timer -= 1;
    while (ready) {
        yield WaitForSeconds(timeDelay);
        Instantiate( enemy, transform.position, Quaternion.identity);
        enemy.transform.LookAt(grip);
        limit -=1;
        enemy.transform.Translate(Vector3(0,0,1));
    }
    }
    }
    
    if(timer <=0){
    Time.timeScale = 1;
    guiText.text == "GAME OVER , HAHAHAHA !!!";
    yield WaitForSeconds(3);
    Application.LoadLevel("levelSelect");
    }
    //ENEMIES IN THIS LEVEL = 80;
if(left == 0){
    guiText.text == "WELL DONE GREENHORN , YOU FINISHED LEVEL 1 ! BUT , ARE YOU READY FOR THE NEXT LEVEL !";
    yield WaitForSeconds(3);
    Application.LoadLevel("level2");
    }
    
    if(enemy == null){
    left-=1;
    }
    if(limit == 0){
    ready = false;
    }
    
}

At the moment it just spawns enemies and they fly into the air ??? Help !

Instantiate( enemy, transform.position, Quaternion.identity);
Makes a copy of “enemy” and returns that copy, therefore instead of modifying “enemy” later modify that object that is returned.